Guides

Troubleshooting

How to recover from Elova MCP sign-in, permission, cursor, and read failures.

Start from the client you added, then from Your account → AI access. This page does not cover host setup. If the account card says AI access is not enabled, an operator has to enable it. A client retry will not.

The browser never opens

For Codex CLI, the intended command is codex mcp login elova. For Claude Code, the intended control is /mcp. These flows are pending installed-client acceptance on the published service. A missing browser does not prove the catalog is deployed.

Use the address shown under AI access, or https://mcp.elova.dev/mcp for the published service. Do not add an API key.

Claude Desktop, Cowork, and claude.ai connectors are not supported.

The connection page says the request is invalid or expired

The sign-in request is short-lived. Close it and start sign-in from the client again. Do not reuse an old browser tab.

Approval also requires a fresh password sign-in, normally within five minutes. If the page asks you to sign in again, do that before allowing access.

Allow stays unavailable

You need at least one eligible workspace. If the page says to ask a workspace administrator for an invitation, this account has no workspace to approve.

You must also select 1–50 workspaces, at least one read permission, and the sharing acknowledgement.

The client authenticates, then a tool is forbidden

Check Connected clients:

  • the workspace is listed
  • the required scope is listed
  • the expiry is still in the future

workspaces:read is required for workspace tools. n8n:read is required for instance, workflow, execution, statistics, and sync-job tools. A missing scope is rejected before the read. The HTTP challenge can include insufficient_scope and the scope name.

A platform administrator role does not add workspace access.

Removal asks for a fresh sign-in

Remove access requires a password sign-in from the last five minutes. Sign in again, reopen Your account → AI access, and confirm removal.

Signing out of the browser does not remove the connection. Completing a password reset, a forced sign-out, or a login-email change does invalidate earlier approvals. Reconnect from the client after those changes.

The tool list is empty or has unknown names

Refresh or reconnect so the client requests the tool list from the server it is connected to. A refresh does not deploy a newer catalog, and it does not require a new approval if the current approval is still valid.

The repository catalog accepts only these names, with no aliases:

get_many_workspaces, get_workspace, get_many_instances, get_execution_stats, get_many_sync_jobs, get_many_executions, get_execution, get_many_workflows, get_workflow.

If the published service has not accepted that catalog, the client can still list the earlier names after a refresh.

The client reports an input validation error

The SDK checks arguments before the read. That message is not one of the fixed backend codes. Correct the arguments and retry.

A local call with limit: 51 on get_many_workspaces returned:

Input validation error: Invalid arguments for tool get_many_workspaces: limit: Too big: expected number to be <=50

Unknown fields, bad enums, and IDs that are not UUIDs fail the same way. limit must be an integer from 1 to 50.

A read returns a fixed error code

After the arguments pass the schema, a failed read returns a fixed code. The text does not include the underlying record.

CodeWhat to do
UNAUTHENTICATEDStart sign-in from the client again
FORBIDDENThe approval was removed, expired, or no longer matches this account. Reconnect
NOT_FOUNDThe local ID is outside this approval, or the selected workspace is no longer granted. List again and use a returned UUID. Discard any cursor
VALIDATION_ERRORThe cursor binding failed. The eligible workspace set, account, approval generation, filters, or page size no longer match, or the cursor was tampered with. Discard it and start again without one
MCP_CURSOR_STALEThe retained snapshot or source changed. The text is MCP_CURSOR_STALE: Read settings changed. Restart without a cursor.
MCP_OUTPUT_INVALIDThe retained result could not be returned inside the tool contract. Narrow the page or try another record
MCP_BACKEND_UNAVAILABLERetry later. The read service did not complete
RATE_LIMITEDWait for Retry-After, then retry the same read

HTTP 401 means the bearer token is missing or invalid. HTTP 403 before a tool runs can mean the token lacks that tool's scope. HTTP 429 means a concurrency or per-approval rate limit. HTTP 413 means the request body exceeded 32 KiB.

The answer looks incomplete

Check the flags before you treat a page as the whole history:

  • coverage.partial is always true
  • coverage.workflowsTruncated or coverage.executionsTruncated
  • nextCursor
  • truncated on sync jobs
  • nameTruncated or workflowNameTruncated
  • nodesTruncated
  • history.truncated, or history.availability of partial, unavailable, or expired

On an execution row, cost may be absent or null. Neither means the run was free. Statistics always include cost, and that value may be null. usage: null on statistics means aggregate usage is not available.

get_execution_stats cannot identify the newest execution. Call get_many_executions with limit: 1.

The client offers to change n8n

Decline that action. The repository catalog cannot run a workflow, edit a node, start a sync, or create a workspace. Ask for a read with a tool the connected server actually lists.