From 85f8456cf06ac36db8f5e1f7cba967f64645c7ac Mon Sep 17 00:00:00 2001 From: Mitchell R Date: Tue, 26 May 2026 01:34:14 +0200 Subject: [PATCH] fix: onError uses init obs when request trace missing If event.context.obs not set, fall back to init-level obs and flag no request trace in error message. Co-Authored-By: Claude Opus 4.6 (1M context) --- server/src/plugins/service-admin-http/index.ts | 10 +++++++++- server/src/plugins/service-api-http/index.ts | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/server/src/plugins/service-admin-http/index.ts b/server/src/plugins/service-admin-http/index.ts index 689ebe9..3aeb3d0 100644 --- a/server/src/plugins/service-admin-http/index.ts +++ b/server/src/plugins/service-admin-http/index.ts @@ -208,9 +208,17 @@ export class Plugin extends BSBService, typeof Event event.context.obs = reqObs; }, onError: (error, event) => { - const reqObs = event.context.obs ?? obs; + const reqObs = event.context.obs; const status = error.status ?? 500; const path = event.req.url ?? "unknown"; + if (!reqObs) { + obs.log.error("HTTP {status} {path}: {err} (no request trace)", { + status, + path, + err: error.message ?? String(error), + }); + return; + } if (status >= 500) { reqObs.log.error("HTTP {status} {path}: {err}", { status, diff --git a/server/src/plugins/service-api-http/index.ts b/server/src/plugins/service-api-http/index.ts index 1a4263f..b3e2799 100644 --- a/server/src/plugins/service-api-http/index.ts +++ b/server/src/plugins/service-api-http/index.ts @@ -177,9 +177,17 @@ export class Plugin extends BSBService, typeof Event event.context.obs = reqObs; }, onError: (error, event) => { - const reqObs = event.context.obs ?? obs; + const reqObs = event.context.obs; const status = error.status ?? 500; const path = event.req.url ?? "unknown"; + if (!reqObs) { + obs.log.error("HTTP {status} {path}: {err} (no request trace)", { + status, + path, + err: error.message ?? String(error), + }); + return; + } if (status >= 500) { reqObs.log.error("HTTP {status} {path}: {err}", { status,