connection propagates errors through callback