Slack MCP OAuth token exchange intermittently fails with net::ERR_FAILED after "Allow" ("Authorization session ended")

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Connecting the Slack MCP server intermittently fails during the OAuth token exchange step. The permission/consent screen in the browser completes successfully (I click “Allow”), but immediately after, Cursor shows: “Could not connect to MCP server ‘slack’: OAuth token exchange failed: net::ERR_FAILED” and the browser shows “Authorization session ended. Return to Cursor to try connecting again.” This has recurred multiple times over the past week (first ~July 16, again July 20), sometimes resolved temporarily by updating Cursor or using Logout + reconnect on the Slack MCP entry in Settings > MCP, other times those steps don’t help. I suspect this may be related to the in-progress OAuth callback migration from cursor:// to the http://localhost:8787/callback loopback mentioned by a Cursor team member on the forum (thread: oauth-redirect-uri-changed-from-cursor-to-http-localhost-for-streamable-http-mcp), since the failures are intermittent rather than constant.

  • I click Authenticate
  • Then get the Cursor <> Slack permissions, click Allow
  • Then see Authorization session ended, and it didn’t work
  • Reload, logout, nothing works

This has worked perfectly fine before. It’s been breaking in the past week or so – without the ability to reconnect.

Steps to Reproduce

Open Cursor Settings > MCP
Find the Slack MCP server entry (configured via ~/.cursor/mcp.json with a static CLIENT_ID, not a stdio server) >> it says “Needs Attention”
Click Connect / Logout then reconnect
Browser opens Slack’s “Allow the Cursor app to access Slack” permission screen
Click Allow
Browser shows “Authorization session ended. Return to Cursor to try connecting again.” and Cursor shows the net::ERR_FAILED toast
Retrying the same flow sometimes succeeds and sometimes fails with no configuration change in between

Expected Behavior

After clicking Allow on Slack’s permission screen, the OAuth token exchange should complete successfully and the Slack MCP server should show as connected, consistently — not intermittently.

Operating System

MacOS

Version Information

3.12.17 (from Cursor > About Cursor)

Does this stop you from using Cursor

No - Cursor works, but with this issue

Thanks for the detailed report, and sorry for the trouble here.

We looked into this and it’s a real bug on our side, which we’re now tracking internally. Good news on one front: it’s not related to the localhost callback migration you mentioned. The “Authorization session ended” page actually confirms the browser callback was delivered to Cursor successfully. The failure happens one step later, when Cursor makes the network request to exchange the authorization code for a token. That request is intermittently failing inside the background process Cursor uses for MCP connections, which is why retries sometimes work with no config changes in between.

In the meantime, the most reliable workaround is to fully quit Cursor (Cmd+Q, not just reloading the window) and reopen it, then reconnect the Slack MCP. A full quit restarts the background process whose network state gets stuck. Logout + reconnect on the MCP entry doesn’t restart that process, which is why it only sometimes helps. That’s also why updating Cursor appeared to fix it temporarily: the update itself restarts everything.

We’ll follow up here when there’s a fix to share.

fully quitting out did help. thanks kevin!

Awesome! Thank you for following up, I really appreciate it