Skip to main content

What you saw

The provider name (openai in the example) varies based on which subscription route Manifest selected.

Why it happened

Routing elected a subscription connection (ChatGPT OAuth, Claude Max token, Copilot device code, and similar), and Manifest still has a stored credential blob for it — but that credential cannot produce a usable access token. Typical causes:
  • The OAuth refresh token expired, was revoked, or the user signed out of the provider account
  • A pasted subscription token is no longer valid
  • Provider-side session invalidation after a password change or security reset
This is different from M100: M100 means there is no key on file. M102 means a subscription row exists and was elected, but the unwrap/refresh step failed. When fallback routes are configured, Manifest records the M102 hop and continues the chain. You only see a terminal M102 response when no usable fallback remains.

How to fix it

  1. Open the dashboard link in the error message. It goes straight to the agent’s Routing page.
  2. On the provider tile, open the Subscription tab and reconnect (re-run OAuth, device code, or paste a fresh token).
  3. Optionally add a working API key or another subscription as a fallback so a dead primary does not block traffic.
  4. Retry the request.