-
Notifications
You must be signed in to change notification settings - Fork 327
OAuth DCR client information is missing after Atlassian authorization, preventing refresh #244
Copy link
Copy link
Open
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:current-main-reproClawSweeper found a high-confidence current-main issue reproduction.ClawSweeper found a high-confidence current-main issue reproduction.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerThis issue is about auth, provider routing, model choice, or SecretRef resolution.This issue is about auth, provider routing, model choice, or SecretRef resolution.impact:session-stateThis issue is about session, memory, transcript, context, or agent state drift.This issue is about session, memory, transcript, context, or agent state drift.issue-rating: 🦀 challenger crabExceptional issue quality: high-confidence current-main reproduction and actionable evidence.Exceptional issue quality: high-confidence current-main reproduction and actionable evidence.
Description
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:current-main-reproClawSweeper found a high-confidence current-main issue reproduction.ClawSweeper found a high-confidence current-main issue reproduction.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerThis issue is about auth, provider routing, model choice, or SecretRef resolution.This issue is about auth, provider routing, model choice, or SecretRef resolution.impact:session-stateThis issue is about session, memory, transcript, context, or agent state drift.This issue is about session, memory, transcript, context, or agent state drift.issue-rating: 🦀 challenger crabExceptional issue quality: high-confidence current-main reproduction and actionable evidence.Exceptional issue quality: high-confidence current-main reproduction and actionable evidence.
Type
Fields
Priority
None yet
Summary
With Atlassian Rovo MCP's OAuth 2.1 endpoint, authorization succeeds and MCPorter stores both an eight-hour access token and a refresh token, but the resulting vault entry has no
clientInfo. Once the access token expires, MCPorter cannot redeem the refresh token and falls back to sending the expired access token, producing401 invalid_tokenand requiring another browser authorization.I reproduced this independently on macOS and Linux with separate OAuth registrations.
Environment
0.12.324.xhttps://mcp.atlassian.com/v1/mcp/authv2auth: "oauth"Reproduction
Configure the Atlassian server:
{ "mcpServers": { "atlassian": { "baseUrl": "https://mcp.atlassian.com/v1/mcp/authv2", "auth": "oauth" } } }Run
mcporter auth atlassian --resetand complete the browser consent flow.Confirm that the credential entry contains
tokens.refresh_tokenandtokens.expires_at, but does not containclientInfo. This can be checked without printing credentials:Observed immediately after successful authorization:
After the access token's eight-hour lifetime, run:
The relevant output is:
The request then fails with HTTP 401 and
{"error":"invalid_token"}.Expected behavior
The dynamic client registration used during authorization should remain available with the token set so MCPorter can silently redeem the refresh token after access-token expiry.
Additional evidence
offline_accessandrefresh_token; the grant includesoffline_access, and a refresh token is present.client_id.client_id, confirming the grant is bound to that registration.As a local diagnostic, I restored minimal client information from each host's own JWT claim:
{ "client_id": "<the token's client_id claim>", "token_endpoint_auth_method": "none" }Without reauthorizing, the already-expired Linux credential then refreshed successfully:
A subsequent server status check and authenticated read both passed. This suggests the refresh-token and silent-refresh paths are healthy once the registration information is available.
Related issues checked
offline_access.This appears distinct: the refresh token exists, but the dynamic client information needed to use it is absent after successful authorization.
No access tokens, refresh tokens, client IDs, authorization codes, states, or PKCE values are included here.