diff --git a/packages/grpc-js/src/deadline-filter.ts b/packages/grpc-js/src/deadline-filter.ts index fd52ebbc..4ca409c1 100644 --- a/packages/grpc-js/src/deadline-filter.ts +++ b/packages/grpc-js/src/deadline-filter.ts @@ -62,7 +62,13 @@ export class DeadlineFilter extends BaseFilter implements Filter { 'connectivityStateChanged', handleStateChange); } }; + const handleStatus = () => { + reject(new Error('Call ended')); + this.channel.removeListener( + 'connectivityStateChanged', handleStateChange); + }; this.channel.on('connectivityStateChanged', handleStateChange); + this.callStream.once('status', handleStatus); } }) .then((finalMetadata: Metadata) => {