fix(accounts): report managed OAuth failures accurately · simstudioai/sim@d17ff65 · GitHub
Skip to content

Commit d17ff65

Browse files
committed
fix(accounts): report managed OAuth failures accurately
1 parent f7b47bc commit d17ff65

3 files changed

Lines changed: 166 additions & 24 deletions

File tree

‎apps/sim/app/api/mcp/oauth/callback/route.test.ts‎

Lines changed: 114 additions & 22 deletions

‎apps/sim/app/api/mcp/oauth/callback/route.ts‎

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,13 @@ async function completeManagedMcpCallback(params: {
100100
throw error
101101
}
102102
if (!attempt) {
103-
return htmlClose('Invalid or expired authorization state.', false, 'invalid_state')
103+
return htmlClose(
104+
'Invalid or expired authorization state.',
105+
false,
106+
'invalid_state',
107+
undefined,
108+
params.state
109+
)
104110
}
105111
const failureRedirect = (oauth: CredentialGroupOAuthFailure) =>
106112
attempt.completionId
@@ -110,7 +116,30 @@ async function completeManagedMcpCallback(params: {
110116
attempt.returnTo === 'integrations' ? attempt.organizationId : undefined
111117
)
112118
: createCredentialGroupEnrollmentRedirect(attempt.invitationToken, { oauth })
113-
if (params.error) return failureRedirect('denied')
119+
if (params.error) {
120+
const errorCode = [
121+
'invalid_request',
122+
'unauthorized_client',
123+
'access_denied',
124+
'unsupported_response_type',
125+
'invalid_scope',
126+
'server_error',
127+
'temporarily_unavailable',
128+
].includes(params.error)
129+
? params.error
130+
: 'unknown'
131+
logger.warn('Managed MCP authorization returned a provider error', {
132+
phase: 'provider_authorization',
133+
errorCode,
134+
})
135+
return failureRedirect(
136+
errorCode === 'access_denied'
137+
? 'denied'
138+
: errorCode === 'server_error' || errorCode === 'temporarily_unavailable'
139+
? 'provider_unavailable'
140+
: 'failed'
141+
)
142+
}
114143
if (!params.code) {
115144
return failureRedirect('failed')
116145
}

‎apps/sim/lib/credential-groups/oauth-popup.ts‎

Lines changed: 21 additions & 0 deletions

0 commit comments

Comments
 (0)