diff --git a/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts b/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts index 2146df9b84..720b62bb9c 100644 --- a/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts +++ b/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts @@ -113,6 +113,7 @@ class DatabaseEventBusListener { signal.addEventListener('abort', () => { this.#listeners.delete(listener); this.#maybeTimeoutConnection(); + reject(signal.reason); }); }); } diff --git a/plugins/events-backend/src/service/hub/createEventBusRouter.ts b/plugins/events-backend/src/service/hub/createEventBusRouter.ts index 0ebd25d304..4a6c34bb6c 100644 --- a/plugins/events-backend/src/service/hub/createEventBusRouter.ts +++ b/plugins/events-backend/src/service/hub/createEventBusRouter.ts @@ -227,6 +227,12 @@ export async function createEventBusRouter(options: { `Received notification for subscription '${id}' for topic '${topic}'`, { subject: credentials.principal.subject }, ); + } catch (error) { + if (error === controller.signal.reason) { + res.end(); + } else { + throw error; + } } finally { // A small extra delay ensures a more even spread of events across // consumers in case some consumers are faster than others