Troubleshooting
Start with the HTTP status.
API and MCP
| Symptom | Cause and fix |
|---|---|
401 Missing Authorization | No credential. Send Authorization: Bearer <token>. MCP clients should follow the OAuth challenge. |
403 Invalid or revoked token | The token was revoked, most likely because a newer token was created (one active token per account). Create a new token in Settings and update every client. |
403 System admin access required | You called /admin/api/* without a system role. |
429 Rate limit exceeded | Wait Retry-After seconds. Limits: 10/min/IP on login endpoints, 600/min per credential on write, search, context, MCP. |
Search returns [] | Nothing above the relevance floor; or the memory is RECENT tier (pass include_recent or run DREAM); or it was soft-deleted. Browse with query * to see what exists. |
Write returns persisted:false | The salience gate (threshold 0.38) rejected it, or for screen events the quality gate rejected or merged it (see reason). |
409 Memory was edited | The id is an older version. Use superseded_by from the response. |
| Search is keyword-only | GET /api/v1/health shows components.embedder is none. Embeddings are unavailable on the server. |
| MCP client cannot connect | Check the URL is exactly https://eam.thundera.eu/mcp. GET /mcp returning 405 is normal. Use an API token if the client cannot do OAuth. |
/api/plans returns 503 | The central plan catalogue was unreachable and no cached copy exists yet. Retry. |
Web app
- Redirected to login repeatedly: sign out of Thundera and in again; check that cookies are allowed for
thundera.eu. - Memories missing after wipe: wipe soft-deletes. Restore with
POST /api/v1/memories/{id}/restore. - Pinned memory will not delete: unpin first.
macOS app
- Nothing uploads: check the menu bar for an account guard prompt, and that Screen Recording / Microphone permission is granted. The upload log lists status per request (
0offline,HELDpaused). - Clipboard not captured: content upload is opt-in (Settings → Capture → Clipboard).
- Download returns 404: no release is published yet; check
/api/v1/app/release.
Import
source_not_enabled: enable the source withPUT /api/v1/import/settingsfirst.rate_limited: wait forRetry-After; daily limit is 50,000 items.