diff --git a/packages/core/src/middleware/koa-log-session.test.ts b/packages/core/src/middleware/koa-log-session.test.ts index b2d4a8900..8ebb2fc5d 100644 --- a/packages/core/src/middleware/koa-log-session.test.ts +++ b/packages/core/src/middleware/koa-log-session.test.ts @@ -62,4 +62,18 @@ describe('koaLogSession', () => { await expect(koaLogSession(new Provider(''))(ctx, next)).resolves.not.toThrow(); expect(next).toHaveBeenCalled(); }); + + it('should not throw when interactionDetails throw error', async () => { + const ctx: WithLogContext> = { + ...createContextWithRouteParameters(), + addLogContext, + log, + }; + + interactionDetails.mockImplementationOnce(() => { + throw new Error('message'); + }); + + await expect(koaLogSession(new Provider(''))(ctx, next)).resolves.not.toThrow(); + }); }); diff --git a/packages/core/src/middleware/koa-log-session.ts b/packages/core/src/middleware/koa-log-session.ts index 976069726..0bc931c91 100644 --- a/packages/core/src/middleware/koa-log-session.ts +++ b/packages/core/src/middleware/koa-log-session.ts @@ -9,10 +9,14 @@ export default function koaLogSession { await next(); - const { - jti, - params: { client_id }, - } = await provider.interactionDetails(ctx.req, ctx.res); - ctx.addLogContext({ sessionId: jti, applicationId: String(client_id) }); + try { + const { + jti, + params: { client_id }, + } = await provider.interactionDetails(ctx.req, ctx.res); + ctx.addLogContext({ sessionId: jti, applicationId: String(client_id) }); + } catch (error: unknown) { + console.error(`"${ctx.url}" failed to get oidc provider interaction`, error); + } }; }