Troubleshooting
Symptom first. Eight failures that look like bugs and are not.
Find your symptom
| What you see | What is actually happening |
|---|---|
| “Connector won’t add” in Claude, with no error | Claude’s free plan allows one custom connector. Remove the one you have, then add AskDeck. |
| Claude Code authenticated once, now loops forever | The loopback redirect has to match the host you started from. Bouncing between localhost and 127.0.0.1 produces a grant the next request does not recognise. Pick one and stay on it. |
| “It asks me to log in every 15 minutes” | Access tokens last 15 minutes. If your client did not request offline access it never received a refresh token, so it has nothing to renew with. Remove and re-add the connector. |
| “Connected, but every call fails with authentication” | The OAuth sign-in ran in a browser that was signed into a different AskDeck account — or none. The grant belongs to whoever that browser was signed in as, not to whoever pasted the endpoint. Sign into the right account in your default browser, then remove and re-add the connector. |
| “I revoked the key and it still works” | Expected, and documented: only plain reads. A revoked credential can keep answering reads for up to about 90 seconds — the MCP layer caches successful checks for up to 90s and the API itself up to 60s — but anything that spends or downloads is re-checked live and stops instantly. See Authentication. |
| “All my clients broke at once” | The issuer URL changed. Clients key stored credentials by issuer, so every one of them invalidates together. Re-add the connector. |
| 409 price_drift on a retry that worked a minute ago | Pricing was retuned between your quote and your submit. Re-quote and resubmit — never drop expected_credits to get past it. |
| 413 when uploading a file the docs say is allowed | Only the materials upload path carries the large-body cap. Every other path inherits the small default, so uploading through the wrong one 413s at a size the docs describe as fine. |
Still stuck?
Check the error reference for the exact code you received — each one lists a concrete next action rather than “check your request”.