Nodaro Docs
DocumentationNode ReferenceModelsAI Agents (MCP)DevelopersSelf-hostingResearch

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

  1. Check that the URL is exactly https://mcp.nodaro.ai/mcp, with no trailing slash.
  2. Check that mcp.nodaro.ai resolves on your network.
  3. Check the discovery document. This command should return 200 with JSON:
curl https://mcp.nodaro.ai/.well-known/oauth-protected-resource

The 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. A POST there returns 405 with the error code wrong_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.

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:

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 app.nodaro.ai/settings/developer-apps, review the apps you authorized, and revoke any you do not expect.

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:write and workflows:execute. With only one of them, none of these tools appears.
  • The workspace tools need workspaces:read and workspaces: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 studio production and recast tools, create_explainer, plan_edit, voice_changer_pro and the credit tools. The workspace tools exist only where organizations are switched on, and pro_3d_render only on deployments that can run it. 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

CodeToolWhat it meansWhat to do
wrong_mcp_hostThe serverThe client called the web page at app.nodaro.ai/mcpUse https://mcp.nodaro.ai/mcp
client_not_allowedRegistrationThe client name is not acceptedUse a supported client or a developer app
too_many_open_registrationsRegistrationToo many unused registrations of one client in open modeUse the registrations you have, or wait
dcr_disabledRegistrationThe instance turned self-registration offUse a client id and secret from the operator
voice_not_foundSpeech toolsThe voice id does not existUse a premade voice name, or a voice you cloned
advanced_mode_unsupportedPrompt and text toolsadvanced_mode was used with a model that is not GeminiChoose a Gemini model or turn advanced mode off
locked_fieldrun_appinputOverrides tried to change where an output goesLeave destinations as the app defines them
portrait_requiredgenerate_characterThe character has no approved portraitApprove a portrait with approve_portrait first
main_image_requiredLocation, object and creature toolsThere is no approved main imageApprove a main image first
candidate_object_mismatch, candidate_creature_mismatchApproval toolsThe candidate was not generated for this object or creatureApprove a candidate made for it
scene_overlapresolve_shot_sequenceTwo scenes have reveals in the same stretch of timeKeep each scene's cues before the next scene's
not_availableStudio production toolsThe deployment does not serve studio productionsDo not retry; the feature is not available there
studio_preview_unavailableedit_studio_productionThe deployment cannot preview a batchNothing was sent; decide with the user whether to apply the batch without a preview
not_finishedimport_studio_productionThe plan job is still runningWait for the job to finish, then import
cloud_only_featurecombine_videossmart_cut was used on a self-hosted installJoin the clips without smart_cut
payer_balance_jwt_onlycheck_balance, credit_transactionsThe deployment's shared billing account cannot be read by a connected clientRead the balance in the app

Frequently asked questions

Last updated on

On this page