From c547dfcde15a4f22a79e921b042bee93034da5ca Mon Sep 17 00:00:00 2001 From: Alex Anderson <191496+alxndrsn@users.noreply.github.com> Date: Fri, 21 Feb 2025 13:28:41 +0300 Subject: [PATCH] oidc/init: include cause in re-thrown errors (#1393) This makes logged errors more useful. Before: ``` attempted to log Sentry exception in development: Error: Failed to configure OpenID Connect client: TypeError: fetch failed at initClient (/home/user/workspaces/odk/backend/lib/util/oidc.js:123:11) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async /home/user/workspaces/odk/backend/lib/resources/oidc.js:108:22 ``` After: ``` attempted to log Sentry exception in development: Error: Failed to configure OpenID Connect client at initClient (/home/user/workspaces/odk/backend/lib/util/oidc.js:123:11) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async /home/user/workspaces/odk/backend/lib/resources/oidc.js:108:22 { [cause]: TypeError: fetch failed at node:internal/deps/undici/undici:13484:13 at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async discovery (file:///home/user/workspaces/odk/backend/node_modules/openid-client/build/index.js:151:16) at async initClient (/home/user/workspaces/odk/backend/lib/util/oidc.js:65:20) at async /home/user/workspaces/odk/backend/lib/resources/oidc.js:108:22 { [cause]: Error: connect ECONNREFUSED 127.0.0.1:9898 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1615:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 9898 } } } ``` --- lib/util/oidc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/util/oidc.js b/lib/util/oidc.js index ce2de861a..c9413ecd5 100644 --- a/lib/util/oidc.js +++ b/lib/util/oidc.js @@ -116,9 +116,9 @@ async function initClient() { }); return client; - } catch (err) { + } catch (cause) { // N.B. don't include the config here - it might include the client secret, perhaps in the wrong place. - throw new Error(`Failed to configure OpenID Connect client: ${err}`); + throw new Error('Failed to configure OpenID Connect client', { cause }); } }