ChatGPT’s MCP connector unconditionally refreshes the OAuth token and
creates a new MCP session before every single tool call, even when the access token is still
valid.
Observed Behavior
Every tool invocation follows this pattern:
POST /token (grant_type=refresh_token) ← token is still valid
initialize ← new MCP session
message processing canceled ← previous session killed
tools/call ← actual work
This happens regardless of expires_in — even with a freshly issued access token (e.g., expires_in: 3600), the next tool call triggers a full refresh + new session.
Not sure if it’s related to your issue, but after deploying a new version of my app in the development environment without OAuth today, it continues to prompt ChatGPT wants to connect to {app}
When I click on “Connect” in the dialog below, the prompt is triggered again in an infinite loop.
I believe I am experiencing the same here when the MCP is using streaming-http stateless protocol. Are you using using this trasportation protocol too? (In my case I dont have any auth in place at all)
unfortunately to me, it still not working, it must be a slightly different issue. Do you know if you have configured StreamableHTTPServerTransport to be stateless?
I had this issue on Wed March 18th. Then yesterday, it was working fine. All day today, I’m getting the issue described above. My app is connected but everytime a tool is invoked, I’m stuck in the connect loop.
We are seeing the same loop in production with a custom MCP server and detailed logs.
What we can confirm from server-side logs:
- DCR works (/register 201, token_endpoint_auth_method=none).
- OAuth code flow works (/authorize → /token 200).
- Access tokens are valid and MCP calls are authorized (initialize, tools/list, resources/list all 200).
- We issue and return Mcp-Session-Id and later requests include it.
- We include OAuth challenge metadata and resource_metadata correctly.
Yet in ChatGPT web, after the connector shows as active, tool invocation can still trigger a fresh auth popup. This happens even when token + MCP RPC logs look healthy.
Question to OpenAI team: is there any known connector-side session invalidation/regression right now for stateless streamable HTTP transports (or specific required fields beyond current Apps SDK docs) that could cause repeated re-auth despite valid token + successful RPC handshake?
If useful, we can share sanitized trace IDs and exact request/response headers.
Hi everyone apologies for this experience - this was due to an internal caching issue that we identified and rolled back earlier today. The issue started yesterday morning and lasted until ~ 3pm today. It affected a portion of users that were attempting to authenticate into their ChatGPT apps.