-
Notifications
You must be signed in to change notification settings - Fork 319
Stale client registration replayed to DCR forever; only --reset recovers #231
Copy link
Copy link
Open
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Description
Metadata
Metadata
Assignees
Labels
P2Normal priority bug or improvement with limited blast radius.Normal priority bug or improvement with limited blast radius.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Priority
None yet
A valid-but-stale client registration (a
client_idthe provider no longer accepts) makesmcporter auth <server>fail at the DCR step and replay the same dead registration on every retry. Only--resetrecovers.Reproduced flipping a Supabase GoTrue-backed
guardserver between two project refs. Stale entries pile up in the vault, and auth dies with:--resetclears it; the flow then completes and a follow-up auth is a no-op.On
main(710840f),unrecoverableOAuthRefreshCode(oauth-persistence.ts:123) is wired in only at the refresh paths (:643,:729), never atregisterClient. AndoauthErrorCode(:143) needs a structured code or known error name; the bareServerErrorfromparseErrorResponsehas neither. So a DCR failure never clears the staleclient_id. #190 and #208 cover refresh failures and corrupt cache, not this.Fix, in the spirit of #190: in the
auth()/attemptTransportConnecterror branch, when cachedclientInformationexists and the failure is fromregisterClient,invalidateCredentials('client')and retry DCR once.mcporter 0.12.3, Node, Linux.