diff --git a/packages/api/gateway/tests/gateway.spec.ts b/packages/api/gateway/tests/gateway.spec.ts index c6f3a59768..8bc7817c95 100644 --- a/packages/api/gateway/tests/gateway.spec.ts +++ b/packages/api/gateway/tests/gateway.spec.ts @@ -1011,6 +1011,24 @@ describe('TypertGatewayService', () => { error: { code: 'internal', message: 'non-error failure', details: {} }, }) + // A business rejection observed while the carrier signal is already aborted + // is the caller's cancellation, not an internal gateway fault. + const cancelledCall = new AbortController() + cancelledCall.abort(new Error('client disconnected')) + service.businessError = new Error('fixture business failure') + await expect(handler( + 'goals/fail', + { args: { request: null } }, + cancelledCall.signal, + )).resolves.toEqual({ + ok: false, + error: { + code: 'cancelled', + message: 'Remote invocation "goals/fail" was aborted', + details: {}, + }, + }) + await gatewayFiber.dispose() expect(connection.handler).toBeUndefined() })