diff --git a/.changeset/deep-steaks-wave.md b/.changeset/deep-steaks-wave.md new file mode 100644 index 00000000..c93be28b --- /dev/null +++ b/.changeset/deep-steaks-wave.md @@ -0,0 +1,5 @@ +--- +'@repo/mcp-common': minor +--- + +Be explicit in oauth error messages diff --git a/packages/mcp-common/src/cloudflare-oauth-handler.ts b/packages/mcp-common/src/cloudflare-oauth-handler.ts index 241a97e2..339e45ad 100644 --- a/packages/mcp-common/src/cloudflare-oauth-handler.ts +++ b/packages/mcp-common/src/cloudflare-oauth-handler.ts @@ -230,13 +230,19 @@ export function createAuthHandlers({ return Response.redirect(res.authUrl, 302) } catch (e) { c.var.sentry?.recordError(e) + let message: string | undefined if (e instanceof Error) { - metrics.logEvent( - new AuthUser({ - errorMessage: `Authorize Error: ${e.name}: ${e.message}`, - }) - ) + message = `${e.name}: ${e.message}` + } else if (typeof e === 'string') { + message = e + } else { + message = 'Unknown error' } + metrics.logEvent( + new AuthUser({ + errorMessage: `Authorize Error: ${message}`, + }) + ) if (e instanceof McpError) { return c.text(e.message, { status: e.code }) } @@ -307,14 +313,20 @@ export function createAuthHandlers({ return Response.redirect(redirectTo, 302) } catch (e) { c.var.sentry?.recordError(e) + let message: string | undefined if (e instanceof Error) { console.error(e) - metrics.logEvent( - new AuthUser({ - errorMessage: `Callback Error: ${e.name}: ${e.message}`, - }) - ) + message = `${e.name}: ${e.message}` + } else if (typeof e === 'string') { + message = e + } else { + message = 'Unknown error' } + metrics.logEvent( + new AuthUser({ + errorMessage: `Callback Error: ${message}`, + }) + ) if (e instanceof McpError) { return c.text(e.message, { status: e.code }) }