Error Reference
Use this page to diagnose failed requests and Flow runs. When the API or a Flow returns an error, check the HTTP status code and the error message in the response body or in Logs, then find the matching entry below.
HTTP status codes
| Code | Meaning | What to do |
|---|---|---|
| 200 | Success (check data / errors in body) | GraphQL can return 200 with errors in the body, such as Workflow not found!. Inspect response.data and response.errors. |
| 400 | Bad Request — invalid JSON, invalid GraphQL query, or a payload that doesn’t match the trigger schema | See GraphQL request errors and check your payload against the Flow’s trigger input schema. |
| 403 | Access Denied — missing or invalid API key | The API never returns 401. A missing or invalid key returns {"errors":[{"message":"Access Denied"}]}. Verify Authorization: Bearer <YOUR_API_KEY> and that the key is active in Studio → Settings → API Keys. |
| 404 | Not found — returned for credential errors | A missing Flow doesn’t return 404. See Flow not found and Credential errors. |
| 429 | Plan quota exceeded for the last 24 hours or 30 days | Upgrade your plan or wait for the window to reset. See Limits & Quotas. |
| 500 | Server error | Retry; if it persists, check Platform Status and contact support. |
Common errors and fixes
Authentication (403)
- Cause: Missing or invalid API key. The API returns 403 with
{"errors":[{"message":"Access Denied"}]}, not 401. - Fix: Use the exact key from Studio → Settings → API Keys. Format:
Authorization: Bearer <YOUR_API_KEY>. Confirmx-project-idmatches the project that owns the Flow.
Flow not found
A missing or invalid Flow doesn’t produce an HTTP 404. The error comes back in the response body as one of:
Workflow not found!Invalid workflow id - <id>
Cause: Wrong endpoint, project ID, or workflow/Flow ID; or the Flow isn’t deployed.
Fix: Get the project URL and project ID from project settings. Get the workflow/Flow ID from the Flow’s Connect or API panel. Deploy the Flow and use the ID of the deployed Flow.
Payload / variable mismatch (400)
- Cause: The
payloaddoesn’t match the input schema on the GraphQL trigger (field names or types). The message starts withInvalid trigger payload:. - Fix: Open the Flow in the Editor and check the trigger node’s input schema. Align your request payload with that schema.
Plan quota exceeded (429)
This is a plan quota, not short-term rate limiting. The message is one of:
Project exceeded max requests for last 30 days, max requests: X, current requests: Y. Please upgrade your plan or contact support.Project exceeded max requests for last 24 hours, max requests: X, current requests: Y. Please upgrade your plan or contact support.
Fix: Upgrade your plan, or wait for the 24-hour or 30-day window to reset. Retrying with backoff won’t help while the quota is exhausted. See Limits & Quotas for plan limits.
GraphQL request errors
Request-level errors come back in the errors array of the response body:
{
"errors": [
{
"message": "Access Denied"
}
]
}| Message | Status | Cause and fix |
|---|---|---|
Invalid JSON in request body | 400 | The request body isn’t valid JSON. Check quoting and escaping in your client. |
Invalid GraphQL query | — | The query can’t be parsed or validated. Check the syntax against the GraphQL reference. |
Query exceeds maximum allowed aliases (N) | — | The query uses more aliases than allowed. Reduce the aliases to N or fewer. |
Query exceeds maximum allowed depth (N) | — | The query nests deeper than allowed. Flatten the query to N levels or fewer. |
GraphQL introspection is disabled | — | Introspection queries aren’t accepted. Use the documented schema instead. |
Access Denied | 403 | Missing or invalid API key. See Authentication (403). |
Internal server error | 500 | Retry. If it persists, check Platform Status and contact support. |
Flow execution and log status codes
The status codes you see in Studio Logs show what happened to a node or a Flow run. Some codes don’t have their standard HTTP meaning.
| Code | Meaning in logs |
|---|---|
| 200 | Node or Flow succeeded. |
| 500 | Node or Flow failed (default error code). |
| 400 | Trigger payload didn’t match the GraphQL trigger’s input schema. The message starts with Invalid trigger payload: .... |
| 408 | Primary config timed out and the fallback config ran (fallback logic step with a timeout). |
| 509 | Node attempt failed and will be retried (Flow-level retries enabled). Also the error code for runs started via “retry flow”. |
| 204 | Success on a retry attempt or a retried run. |
| 304 | Node skipped (branch not taken). |
| 208 | Node skipped during a retried run. |
Flow-level retries go up to 5, with a delay of up to 30 seconds between attempts. Each failed attempt is logged separately.
Flow execution errors
| Message | Cause and fix |
|---|---|
No trigger node found! | The Flow has no trigger node. Add one and redeploy. |
Workflow not found! / Invalid workflow id - <id> | Wrong Flow ID, or the Flow isn’t deployed. See Flow not found. |
Invalid trigger payload: <details> | The request payload doesn’t match the advanced schema on the GraphQL trigger. Status 400. |
Max retries reached for node <nodeId> | The node failed every Flow-level retry. Check that node’s own error in the logs. |
Timeout after <n>ms | The primary config exceeded the fallback timeout, so the fallback config ran. |
All parallel requests failed | Every config in a parallel logic step failed. |
All logic steps failed | Every configured logic step (retry, fallback, parallel, A/B) failed for the node. |
Unsupported step type: <type> / Invalid step | A logic step is misconfigured on the node. Review the node’s logic configuration. |
Previous request id is required | You used “retry from failed node” without the original request ID. Provide the request ID of the failed run. |
Cache not found, please reach out to lamatic support | Platform-side error. Contact support. |
Credential errors
| Message | Status | Cause and fix |
|---|---|---|
credentialId is required / Invalid credentialId | 400 | The request is missing a credential ID, or the ID is malformed. Provide a valid credentialId. |
Credential not found or not accessible | 404 | The credential doesn’t exist or belongs to another project. These two cases are deliberately indistinguishable. Confirm the ID and that the credential is in the same project as the Flow. |
Credential resolution is not available for this project, please contact support | 500 | Platform-side. Contact support. |
Reading an error in the logs
When a Flow run fails, open the run in Logs and check these fields:
errorMsg: The error message.failedNode: The node that failed. It includesnodeId,nodeName,nodeSlug, andloopBatchIdif the node ran inside a loop or batch.logicStep(on node logs): Which logic step produced the failure. For example:retry (attempt 2/3 with Config B)parallel (Config A)abTest (selected Config B)fallback (Config A timed out)
Node-specific errors
Most errors in logs come from individual nodes, such as integration, LLM, code, and API nodes. They’re shown verbatim in errorMsg together with failedNode. Common categories are:
- Integration authentication or credential failures
- Upstream HTTP errors, shown as
HTTP <status>: <body> - Code node runtime errors
For node configuration and requirements, see the per-node docs, such as the API node, Generate Text node, and the full Nodes list.
Flow failures: next steps
If the request succeeds but the Flow run fails:
- Check Logs in Studio for the run’s trace and the failing node.
- Use the Feedback API or Reports if you’re capturing run outcomes.
- See the node’s documentation for required config (e.g. model credentials, input shape).
If you hit an error not listed here, check Limits & Quotas and Support or community Slack.