Troubleshooting
Fix common Nodaro MCP problems, from a wrong server URL, a failed sign-in and missing tools to failed jobs, uploads and error codes such as client_not_allowed.
This page lists the most common problems with the Nodaro MCP server and how to fix them: connection and sign-in errors, tools that do not appear, jobs that fail or seem stuck, uploads, and the error codes that tools return. Start with the section that matches what you see.
Connecting and signing in
The client shows an OAuth error when you add the connector
- Check that the URL is exactly
https://mcp.nodaro.ai/mcp, with no trailing slash. - Check that
mcp.nodaro.airesolves on your network. - Check the discovery document. This command should return
200with JSON:
curl https://mcp.nodaro.ai/.well-known/oauth-protected-resourceThe same host also serves /.well-known/oauth-authorization-server, which should return 200 with JSON too.
The sign-in never completes, or the URL is wrong
The server answers only at https://mcp.nodaro.ai/mcp. Two common mistakes fail before the sign-in reaches Nodaro:
https://api.nodaro.ai/mcp: this domain does not exist, so the connection fails when it looks up the name.https://app.nodaro.ai/mcp: this is the MCP web page, not the server. APOSTthere returns405with the error codewrong_mcp_host, which names the correct URL.
Claude cannot edit a connector's URL. Delete the broken connector and add it again with https://mcp.nodaro.ai/mcp.
The consent screen shows an orange warning about the client's name
That is expected. A client that registers itself chooses its own name, such as "Claude", and Nodaro does not verify it. The warning reminds you to check that the app asking for access is the one you are setting up before you click Allow.
Registration fails with "Client not allowed"
Your client registered with a name that is not on the list of accepted clients. You can:
- Use a supported client, such as Claude, ChatGPT, Cursor, Cline, Continue or Goose.
- Register a developer app at app.nodaro.ai/settings/developer-apps and use its client id and secret. See Your own client.
- On your own instance, ask the operator to add the client's name to
MCP_DCR_ALLOWLIST, or to setMCP_DYNAMIC_REGISTRATION=open. See MCP on a self-hosted install.
The assistant stopped working after a while
Access lasts 90 days, and there are no refresh tokens. When it expires, calls return 401. Sign in again from your client, or remove the connector and add it again.
Runs you did not start show "via MCP"
A connected MCP client started them on your behalf. Open Settings › Connected apps, at app.nodaro.ai/settings/connected-apps. It lists every app and AI assistant with access to your account, with the date each one was connected and last used.
- An assistant that registered itself is listed as "AI assistant (MCP) — the name was set by the assistant". Nodaro did not verify that name.
- To remove an app you do not expect, click Revoke access and confirm. Its access ends at once, and its tokens stop working.
Tools are missing
The client is connected but shows no tools, or only some
A tool whose permission you did not grant is left out of the tool list entirely. Remove the connector, add it again and allow every permission on the consent screen. Some tools also need more than one permission:
- The studio generation tools need both
workflows:writeandworkflows:execute. With only one of them, none of these tools appears. - The workspace tools need
workspaces:readandworkspaces:write, which connections authorized before workspaces existed do not have. Reconnect to get them.
Permissions lists which tool needs which permission.
A tool from the docs is not in your list at all
Some tools exist only on Nodaro Cloud, such as the pipeline, studio production, recast and workspace tools, start_film_director, create_explainer, plan_edit, voice_changer_pro, pro_3d_render and the credit tools. The workspace tools also need organizations switched on, and pro_3d_render appears only while its render engine is available. See Tools only on Nodaro Cloud.
Jobs and results
A generation failed
Ask the assistant to call get_job or diagnose_run with the job id. Read retryable and guidance: when retryable is false, the same request will fail again unchanged, so change the settings or the input. When suggestedProvider is present, run the same prompt and references on that model. When a job fails has the details. Credits reserved for a failed job are refunded, except after a failure in post-processing.
A job says pending_review
The deployment holds results for a person to review. The job is still in progress, not failed. Keep checking it, and do not run it again: a duplicate would be held too.
wait_for_job returns timeout
That is not an error. The job was still running when the wait ended, after at most 120 seconds. Call wait_for_job again, or poll get_job every 5 to 10 seconds. Videos usually take 2 to 10 minutes.
The result card does not appear
Cards need a client that displays MCP Apps, such as Claude on the web. In other clients, ask the assistant to check the job with get_job. The result is always saved to your library.
A run was charged twice after a timeout
Pass a client_request_id on run_workflow, run_app, run_component and the production tools, and reuse the same value when you retry. Nodaro then returns the first run instead of starting and charging a second one.
Uploads
prepare_image_upload fails in Claude on the web
The presigned upload needs a client that can reach the storage host from a shell, such as Cursor, Cline, Claude Desktop or Claude Code. In Claude on the web and on Android, use upload_image_widget, or request_image_upload, which gives you a link to open in your browser. See Upload tools.
Workflows
update_workflow_json says the workflow was modified
Someone changed the workflow after you read it. Read it again with get_workflow_json, then send the change again with the new version.
A setting you sent is not the one that was saved
A model does not accept every aspect ratio, resolution or quality. Nodaro changes an unsupported value to a supported one, or removes it, and lists each change under adjustments. Do not send the original value again; choose a model that supports it, using list_models.
The Film Director's canvas stays empty
The skill adds a stage's nodes in one step after you approve the stage. Wait until Claude says it added them, then refresh. More fixes are in Film Director.
Error codes
| Code | Tool | What it means | What to do |
|---|---|---|---|
wrong_mcp_host | The server | The client called the web page at app.nodaro.ai/mcp | Use https://mcp.nodaro.ai/mcp |
client_not_allowed | Registration | The client name is not accepted | Use a supported client or a developer app |
too_many_open_registrations | Registration | Too many unused registrations of one client in open mode | Use the registrations you have, or wait |
dcr_disabled | Registration | The instance turned self-registration off | Use a client id and secret from the operator |
voice_not_found | Speech tools | The voice id does not exist | Use a premade voice name, or a voice you cloned |
advanced_mode_unsupported | Prompt and text tools | advanced_mode was used with a model that is not a Gemini or Claude model | Choose a Gemini or Claude model, or turn advanced mode off |
advanced_mode_unavailable | Prompt and text tools | The model's own provider cannot take advanced-mode requests right now. The credits are not charged, or are refunded | Turn advanced mode off to run the model, or try again later |
locked_field | run_app | inputOverrides tried to change where an output goes | Leave destinations as the app defines them |
portrait_required | generate_character | The character has no approved portrait | Approve a portrait with approve_portrait first |
main_image_required | Location, object and creature tools | There is no approved main image | Approve a main image first |
candidate_object_mismatch, candidate_creature_mismatch | Approval tools | The candidate was made for another object or creature | Approve a candidate made for it |
scene_overlap | resolve_shot_sequence | Two scenes have reveals in the same stretch of time | Keep each scene's cues before the next scene's |
not_available | Studio production tools | The deployment does not serve studio productions | Do not retry; the feature is not available there |
studio_preview_unavailable | edit_studio_production | The deployment cannot preview a batch | Nothing was sent; decide with the user whether to apply the batch without a preview |
not_finished | import_studio_production | The plan job is still running | Wait for the job to finish, then import |
cloud_only_feature | combine_videos | smart_cut was used on a self-hosted install | Join the clips without smart_cut |
payer_balance_jwt_only | check_balance, credit_transactions | The deployment's shared billing account cannot be read by a connected client | Read the balance in the app |
Frequently asked questions
Why does my client show Nodaro as connected but list no tools?
The permissions granted on the consent screen do not cover the tools. Remove the connector, add it again, and allow every permission.
Which URL should I use for the Nodaro MCP server?
Exactly https://mcp.nodaro.ai/mcp, with no trailing slash. api.nodaro.ai does not exist, and app.nodaro.ai/mcp is a web page, not the server.
What does client_not_allowed mean?
Your client registered with a name that is not on the list of accepted clients. Use a supported client, or register a developer app in your Nodaro settings and use its client id and secret.
My assistant stopped working after a few months. Why?
Access from an MCP client lasts 90 days, and there are no refresh tokens. Sign in again from your client, or remove the connector and add it again.
I see runs marked via MCP that I did not start. What should I do?
A connected client started them on your behalf. Open Settings › Connected apps at app.nodaro.ai/settings/connected-apps, review every app and assistant with access to your account, and revoke any you do not expect. Revoking ends its access at once.
Related
Connect a client
Jobs
Your own client
Nodaro MCP
Last updated on