Guides
Troubleshooting
Most problems are the URL, the scopes or a client that keeps an old list of tools.
The client says it is not authorized
Link to this section: The client says it is not authorizedA call without a credential gets an HTTP 401 with a problem body and a WWW-Authenticate header that points to the OAuth metadata. A client with OAuth starts the sign-in; one with a key needs the header. With a key, the code says why: api_key_invalid, api_key_revoked, api_key_expired, api_key_owner_inactive or api_key_owner_not_admin.
The URL is not the right one
Link to this section: The URL is not the right oneThe only URL is https://. Another production host answers with a redirect (308) and, for a client that does not follow it on a POST, a JSON-RPC error that names this URL. A client that follows the redirect drops the Authorization header when the origin changes, so sign-in fails in a way that looks like a bad key. Type the URL exactly as shown.
A tool is missing
Link to this section: A tool is missing- With a key, the catalogue lists only what the key can call: check its scopes against the tool's scope on its page. It also leaves out the tools whose add-on the account lacks (an account in trial has them all).
- With OAuth, a client is not guaranteed to list the tools again after you consent. Start a new conversation after you connect.
- A tool that needs an add-on the account lacks is not listed; calling it anyway returns
addon_required. See Plans and add-ons. - The client may be over its tool limit and drop tools. Use a preset: see Limits and context.
A scope is not checked or a call says insufficient scope
Link to this section: A scope is not checked or a call says insufficient scopeWrites, workflows:run and ai:ask start unchecked in the consent screen, even if the client asked for them. Check them by hand if the assistant needs them. To change scopes after you connected, remove the connector and add it again.
I did not start this consent
Link to this section: I did not start this consentDo not approve it. Read Before you approve.
A call takes too long or times out
Link to this section: A call takes too long or times outfilmo_ai_ask can take tens of seconds. Raise the client's timeout, or ask a narrower question. Lists with many rows take longer to return and to read: ask for limit 20.
Too many requests
Link to this section: Too many requestsrate_limited: wait retryAfter seconds. The availability tools share a separate quota of 30 calls a minute.
OAuth does not work on a server or in a container
Link to this section: OAuth does not work on a server or in a containerClients that open a browser for the sign-in (Claude Code, Codex, Gemini CLI) need one. On a machine without a browser, use an API key kept in the environment.
A key leaked
Link to this section: A key leakedRevoke it in the API and MCP page of the app's settings and create another with the same scopes. A revoked key stops working at once. Then check what it did. Security has the full procedure.
Asking for help
Link to this section: Asking for helpGive the requestId of the problem, the tool and the time. Never send the key.
Related pages
Link to this section: Related pagesGuides
Errors
A tool error is a result with
isError: trueand the problem in the first text block. Branch on itscode.Guides
For administrators
An assistant acts with the consent of one of your administrators. Decide who may connect, what they may grant and how to take it back.
Access
Authentication and permissions
Authenticate with an API key in a header, or let the client sign in with OAuth 2.1. Either way the scopes decide which tools exist.
Was this page helpful?