Plugin connects successfully via streamable HTTP
OAuth callback is received with authorization code (browser redirect works)
Token exchange fails with HTTP 404 — response body is plain text “404 Not Found” instead of JSON
Error from logs:
Failed to complete OAuth exchange HTTP 404: Invalid OAuth error response:
SyntaxError: Unexpected non-whitespace character after JSON at position 4.
Raw body: 404 Not Found
Environment:
OS: Linux (RHEL/CentOS 9)
Cursor version: [fill in from Help > About]
Atlassian plugin version: [fill in from Extensions panel]
No existing OAuth apps in Atlassian Developer Console
Atlassian account has active Jira/Confluence access
Steps to Reproduce
Install the Atlassian plugin (“Atlassian plugin for Cursor with MCP and skills for Jira, Confluence…”) from the Cursor Extensions marketplace
Cursor prompts to authenticate the Atlassian MCP server — click to proceed
Browser opens to the Atlassian OAuth consent screen — log in and authorize
Browser redirects back to Cursor with an authorization code (this step succeeds)
Plugin attempts to exchange the authorization code for an access token
Token exchange fails — the endpoint returns HTTP 404 with plain text body 404 Not Found instead of a JSON response
Expected Behavior
Expected result: Token exchange succeeds, MCP tools become available in Cursor.
This is a known issue with how Cursor handles OAuth token exchange for MCP servers that use a separate authorization server (which is how Atlassian’s OAuth works).
Our team is aware of this and actively tracking it. Unfortunately, there isn’t a workaround available since the issue is in the internal token exchange logic. We’ll make sure this report is tracked alongside the fix effort.
Same issue after upgrading to 3.0.9 — likely a regression
This was working for me on the previous stable build and broke right after I installed the release from this morning.
Current environment
Cursor: 3.0.9 (Universal), stable, default track
VS Code base: 1.105.1
Commit:93e276db8a03af947eafb2d10241e2de17806c20
Build date: 2026-04-03T02:06:46.446Z
OS: Darwin arm64 25.3.0
Electron: 39.8.1 / Node: 22.22.1
2026-04-03 16:46:11.184 [info] Creating streamableHttp transport
2026-04-03 16:46:11.353 [info] Connecting to streamableHttp server
2026-04-03 16:46:11.859 [info] Using redirect URL
2026-04-03 16:46:11.863 [info] Using redirect URL
2026-04-03 16:46:11.863 [info] Using redirect URL
2026-04-03 16:46:11.863 [info] Saving PKCE code verifier
2026-04-03 16:46:11.868 [info] MCP OAuth redirect to authorization
2026-04-03 16:46:11.872 [info] Stored server URL for OAuth flow
2026-04-03 16:46:11.872 [warning] UnauthorizedError in onerror (current status: 'needsAuth'): Unauthorized
2026-04-03 16:46:11.872 [warning] Auth-related error connecting to streamableHttp server, returning transport
2026-04-03 16:46:11.872 [info] Successfully connected to streamableHttp server
2026-04-03 16:46:11.872 [info] Storing streamableHttp client
2026-04-03 16:46:11.872 [warning] [MCP Allowlist] No serverName provided for adapter, falling back to stripIdentifierPrefix. identifier="plugin-atlassian-atlassian", displayName="plugin-atlassian-atlassian"
2026-04-03 16:46:11.872 [info] CreateClient completed, server stored: true
2026-04-03 16:46:11.878 [info] MCP OAuth needsAuth (v1)
2026-04-03 16:46:19.633 [info] Received OAuth callback with code
2026-04-03 16:46:20.309 [info] Using attempt-scoped OAuth client information for callback flow
2026-04-03 16:46:20.311 [info] Using redirect URL
2026-04-03 16:46:20.423 [error] Failed to complete OAuth exchange HTTP 404: Invalid OAuth error response: SyntaxError: Unexpected non-whitespace character after JSON at position 4 (line 1 column 5). Raw body: 404 Not Found
What happens
Browser OAuth completes; I get redirected back with an authorization code (as before).
Token exchange then fails with HTTP 404 and a plain-text body 404 Not Found (not JSON), so the client errors on JSON parse — same pattern as in the original report.
So this looks like a 3.0.9 regression in MCP OAuth / token exchange (possibly related to the separate authorization-server flow mentioned above), not a new misconfiguration on my side.
Happy to run any specific logging steps if that helps narrow it down.
fwiw I just experienced the same issue after upgrading
2026-04-03 12:04:44.083 [info] Successfully reloaded client
2026-04-03 12:04:44.100 [info] MCP OAuth needsAuth (v1)
2026-04-03 12:04:56.216 [info] Received OAuth callback with code
2026-04-03 12:04:57.865 [info] Using attempt-scoped OAuth client information for callback flow
2026-04-03 12:04:57.868 [info] Using redirect URL
2026-04-03 12:04:58.128 [error] Failed to complete OAuth exchange HTTP 404: Invalid OAuth error response: SyntaxError: Unexpected non-whitespace character after JSON at position 4 (line 1 column 5). Raw body: 404 Not Found
2026-04-03 12:04:55.342 [info] Successfully reloaded client
2026-04-03 12:04:55.351 [info] MCP OAuth needsAuth (v1)
2026-04-03 12:05:02.843 [info] Received OAuth callback with code
2026-04-03 12:05:03.466 [info] Using attempt-scoped OAuth client information for callback flow
2026-04-03 12:05:03.468 [info] Using redirect URL
2026-04-03 12:05:03.596 [error] Failed to complete OAuth exchange HTTP 404: Invalid OAuth error response: SyntaxError: Unexpected non-whitespace character after JSON at position 4 (line 1 column 5). Raw body: 404 Not Found
Hi all. The root cause has been found and we have a candidate fix that we are working on getting out. Will have an update on the min good version here shortly. Thank you for your patience, and sorry again about the disruption.
Looking at your error, this appears to be a different issue from what was fixed in 3.0.12. The original bug returned a plain text 404 Not Found body during token exchange, while yours is returning an nginx-served HTML 404 page. That nginx signature suggests a different root cause – possibly a proxy, CDN, or a different endpoint URL issue.
Could you create a new thread for this with the following details? That way the engineering team can track and investigate your specific variant properly:
Full MCP log output from the connection attempt – go to View > Output, select the Atlassian MCP channel from the dropdown, and copy everything from when the connection starts through the error
Whether you’re connecting via SSH to a remote host or running Cursor locally
Whether you’re behind a corporate proxy or VPN
The two log lines you shared don’t show the earlier steps of the OAuth flow, which would help determine where it diverges from the original issue.
The issue is stillthere and not fixed. 2026-04-1010:08:24.234 [error] Failed to complete OAuth exchange HTTP 404: Invalid OAuth error response: SyntaxError: Unexpected non-whitespace character after JSON at position 4 (line 1 column 5). Raw body: 404 Not Found
The fix for this issue was shipped in version 3.0.12 (as Devang noted in post #12). You’re currently on 3.0.4, which predates the fix.
Could you update to 3.0.12 or later and try again? You can check for updates via Help > Check for Updates or by downloading the latest version from cursor.com.