Rumatadocs
Browse documentation

Agent troubleshooting

Exact symptoms agents hit on Rumata, what causes them, and the fix, across backends, frontends, data, files, workflows and AI.

Step-by-step guidance.

Before you start

  • The failing response, log or run trace.

Diagnose before changing

Read the real evidence first: build logs for that build ID, node input and output in the run trace, or the response body. Change one cause at a time. Never retry a failed build or paid generation unchanged.

Backends and builds

SymptomCauseFix
Empty service listNo service registered yetCreate one. Hosting is available.
Backend changes do not registerOnly local manifests were editedCall `configureBackendService`.
Update rejected for revisionStale `expectedRevision`Read `getBackendService` and retry with the current revision.
Development port conflictAssumed 8081, or used a reserved portPick a free port through `listen(0)`. Ports 3001, 4096, 5173 and 8080 are reserved.
Service will not answerBound to localhost or a fixed portListen on `0.0.0.0` and the injected `PORT`.
Database never sleeps`/health` runs SQL or `SELECT 1`Check only the HTTP process in `/health`.
Gateway health returns 503 while asleepExpected while sleepingTest wake-up with a real application operation.
Build works locally, fails remotelyUncommitted files, or needs `.git`Reproduce from `git archive HEAD`. See Deployment.
403 from a raw preview requestPreview needs Studio authorizationUse `debugBackendRequest` or the browser. Do not publish to bypass it.
Public 404 from a deployed backendAccess grant or publicationInspect Manage access. Do not switch to `direct` or embed platform credentials.

Frontends

SymptomCauseFix
`new URL` throws in previewRelative binding baseJoin strings. See Frontend.
API path loses the service IDBase without trailing slash passed to `new URL`Join strings.
Bodyless DELETE returns 400`content-type: application/json` with no bodySend that header only with a body.
Workflow client cannot reach the backendIt only routes workflowsUse the `VITE_*` binding.
Dialog controls sit behind a mapMap panes share the stacking contextSet `isolation: isolate` on the map wrapper.
Browser reports `Failed to fetch`Often a server error, not CORSInspect activity traces or the backend response first.

Database and files

SymptomCauseFix
`CREATE EXTENSION` failsRumata installs extensionsUse `setDatabaseExtension`, then poll `listDatabaseExtensions` until `applied`.
INSERT becomes `DEFAULT VALUES`A placeholder was droppedList every required column, and treat a constraint error as incomplete input.
Pooler rejects `statement_timeout`Sent in the startup packetSet `query_timeout` on the client.
Storage rejects `photo..png``..` is rejected anywhereValidate names before building the path; return 400.
HTTP 200 but a file failed to signPer-file errorsRead each `results` entry.
SVG downloads instead of displayingActive content is stored as an attachmentUse raster formats for inline display.
Double `/api` in storage URLs`storageApiBaseUrl` already has the prefixDo not append it.
First gallery page failsGET prefix bound as `{{prefix}}`Bind `{{queryParams.prefix}}`, and allow empty `queryParams`.

Workflows and AI

SymptomCauseFix
Graph rejected on port kind`error` used as a kindKind is `data` or `control`. `error` is a port ID.
Merge never finishesIt waits for every port, including skipped branchesFinish branches separately or call a shared workflow.
Publishing rejects a loop bodyNested loop, AI node or signal wait in the bodyMove it to a called workflow.
Key cannot run the workflowIt is a draft, or a custom group lacks the grantPublish with `publishIntegrationWorkflow`; grant 136 to custom groups.
HTTP 200 but no resultRun is still pendingTreat `queued`, `running` and `waiting` as pending. Use `waitForSuccess`.
Schedule is not firingSaved graph onlyRequire `schedule.synced`, then verify `getWorkflowSchedule` has `nextRun`. Retry `syncWorkflowSchedule`.
Connector call has no credentialsNo bound connectionBind a connection with `listSecrets.secretId`, then refresh `listConnectors`.
Model ignores an imageURL only appears in textPass `config.images` and use a vision-capable model.
Agent says it saved but nothing changedTool not called, or it hid zero rowsInspect `toolCalls` and `childRunId`. Tools must report no-change outcomes.