Troubleshooting

Common Forvibe MCP errors and how to fix them.

Updated 2026-05-12
4 min read

Hit a wall? Here are the failures we see most often and the fix for each.

401 Unauthorized

Either no API key was sent, the key is wrong, or the OAuth token expired and the client didn't refresh.

  • Confirm the Authorization: Bearer fvk_live_… header is set in your client config.
  • Check Settings → API Keys — is the key still listed and not revoked?
  • If OAuth: remove and re-add the connector from your client's UI to trigger a fresh consent.

403 Forbidden origin

Your client sent an Origin header we don't recognize. Allowed origins: claude.ai, claude.com, chatgpt.com, cursor.sh, gemini.google.com, forvibe.app, plus localhost during development. CLI tools (Claude Code, Gemini CLI) don't send an Origin and are always allowed.

Hosting your own AI agent behind a proxy with a custom Origin? Email support@forvibe.dev and we'll allowlist your origin.

429 Rate limit exceeded

API keys are limited to 120 requests per 60-second sliding window. The response includes:

  • X-RateLimit-Limit: 120
  • X-RateLimit-Remaining: <n>
  • X-RateLimit-Reset: <unix-timestamp>
  • Retry-After: <seconds>

Well-behaved clients (Claude Code, Cursor) read these headers and back off automatically. If you're hitting limits during normal use, split into multiple keys (per project / per machine).

402 Insufficient credits

AI tools (localize_listing, simulate_metadata_only, etc.) deduct from your organization's credit balance. Top up under Settings → Buy Credits.

OAuth: "Invalid resource" or trailing-slash mismatch

Claude.ai sometimes appends a trailing slash to the resource parameter. Forvibe normalizes both https://www.forvibe.app/mcp and https://www.forvibe.app/mcp/. If you still see this error, make sure you typed the URL exactly as https://www.forvibe.app/mcp (no extra path segment).

OAuth: stuck after "Approve"

There's a known Anthropic-side regression where Claude.ai occasionally receives an auth code but never calls /oauth/token. If the consent flow completes on Forvibe but the connector stays in "connecting" state in Claude.ai:

  • Remove the connector and re-add it.
  • If the loop persists, fall back to Claude Desktop's config file with an API key — same MCP server, manual auth.

"API key not bound to an organization"

Your API key was minted without an active organization context. Visit the API Keys page while you have an org selected in the dashboard, revoke the key, and create a new one.

Tool not appearing in client

  • Restart the client (some clients cache the tool list on launch).
  • Verify the connector is healthy in the client's MCP / Connectors panel.
  • Hit https://www.forvibe.app/mcp with a curl tools/list request — if it returns 36 tools, the issue is client-side.
bash
curl -X POST https://www.forvibe.app/mcp \
  -H "Authorization: Bearer fvk_live_..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Still stuck?

Email support@forvibe.dev with: the client name + version, the exact error message (or the ofid_… reference if Claude.ai showed one), and the timestamp. We have full request logs for /mcp and /oauth/* and can usually pinpoint the issue within a working day.