401 Unauthorized / not_connected | Not connected, or the connection expired or was revoked | Reconnect from your client. Check it still exists under app.morphic.io/home/{workspace}/settings/developers → Connected apps. This is never fixed by a permission change — the credential was not readable at all |
406 Not Acceptable on POST /v2/mcp | Missing Accept header | Streamable HTTP requires Accept: application/json, text/event-stream on every POST |
406 Not Acceptable on GET /v2/mcp | Missing SSE Accept header | Send Accept: text/event-stream, or use POST for JSON-RPC |
401 on a just-approved connection | Backend unreachable, or the token has not been issued yet | Check api.morphic.io status; try /health; reconnect |
| OAuth “No workspace found” | Account has no team workspace | Create a workspace at app.morphic.io first |
| Connector won’t load in Claude.ai | Cloudflare blocking root-level path | Use /v2/mcp not /mcp as the connector URL |
| Tools not showing in Claude Desktop | Config file syntax error | Validate JSON; restart Claude Desktop |
search_entities returns "hint": "no_match" | Nothing matched semantically (index may also be cold) | Use list_entities with search or an exact filters condition |
| OpenClaw fails to connect | Missing transport config | Add "transport": "streamable-http" to server config |
| Revoked connection still accepted | Auth cache TTL | Wait up to 2 minutes for cache to clear |
| ”Slug must contain only letters…” | Invalid characters in entity type slug | Use only a-z, 0-9, -, _ in slugs |
not_found on a valid-looking type slug | Object-type slugs are plural | Use people, companies, deals — call list_entity_types for the real set |
invalid_input on unlink_entities | Passing relation_id | It takes entity_id + attribute_slug + target_entity_id — same shape as link_entities |
invalid_input on an activity status | pending is not a real status | Call list_task_statuses for this workspace’s slugs |
parallel_search / flint_action / agentmail_action missing | The addons group is opt-in | Connect to …/v2/mcp?tools=addons — see Tool Groups |
addon_not_installed | Add-on not purchased for the workspace | Install the add-on in Morphic, then opt in with ?tools=addons |
400 when using X-Backend-URL | Target origin isn’t allowlisted on the server | Only origins in the server’s ALLOWED_BACKEND_URLS (plus its own backend) are accepted |
OAuth returns error=access_denied | You clicked Cancel on the authorize page | Re-run Connect and approve |
| OAuth rejects the redirect URI | Client’s redirect_uri isn’t registered or allowlisted | Only registered clients, claude.ai / claude.com / cursor.com / chatgpt.com / chat.openai.com, and loopback URLs are accepted |
428 / workspace_selection_required | The grant reaches more than one workspace and none was named | Call list_workspaces, then retry the call with workspace set to one of the slugs. No reconnect needed — use ?workspace= on the connect URL only if you want a standing default |