Skip to content

Troubleshooting

Find what you see, then what to change. For a failed run, start with Debug a failed run, and for many at once, Recover failed runs. This page explains the messages and codes you meet along the way.

The tooltip says “Fix validation issues before publishing.” Some block has a missing required value or a mapping that no longer resolves. Click Publish anyway: the editor shows every missing value and opens the first block that needs work. A banner such as “2 fields have unresolved mappings” has Jump to field to take you there.

The tooltip says “Pin a sample on the trigger or run the automation once to run the draft.” Fill in the example values on the trigger’s Samples tab, or run the automation once. See Pin a sample.

If it starts and then fails, the dialog says why. “The draft changed while starting. Start again.” means someone edited at the same moment. “5 draft runs are already running for this automation.” means you have to wait for one to finish.

A draft run holds blocks that write, send or delete, and nothing reaches the other system. Reads, computation and model calls always run, except a prompt with tools, which is held, and an Approval block raises a real escalation. See What runs for real.

The run bar says “stopped at” a block: “write held, no pinned or last real output”. A held write had no pinned output, last real output or plan to pass on, so its branch ended there, and nothing failed. Give the block example values on its Samples tab, or run it once for real. Run draft lists the blocks this may happen at before you start. See Held writes.

The tooltip says why. It needs the run to be finished and within its retention period, a draft with no validation issues, and a block outside a loop: “A run cannot start inside a loop. Start at the loop step, or before or after it.” The button does not show on a block the run never reached. See Run from here.

It copies data from the automation’s latest run, or the viewed run in run view, so it needs one that fits:

Message Do this
“Run this automation once to capture a sample.” Start one run, then capture.
“The latest run didn’t fire through this trigger.” Start a run through this trigger, or fill in the fields yourself.
“This block wasn’t reached in the latest run.” Run a case that takes this block’s path, or fill in the fields yourself.

The tooltip says “Publish before activating” or “Publish your changes to activate”. Only a published, up-to-date automation can be active. Click Publish, which also makes it active.

Labels such as “Network error” or “Provider error” mean Lainstack knows the kind of failure but holds nothing more it can show, because what other systems write is never recorded. See Failure messages.

A warning says part of the record could not be saved

Section titled “A warning says part of the record could not be saved”

The run is not affected, only the account of it. See Incomplete records.

Two groups can show the same label when the hidden text behind it differed. If they share a cause, ask your agent to merge them.

A new failure with the same cause reopens a group, and it notifies again. See A new failure reopens a group.

The confirm step lists each run it refuses, with the reason. See Runs that cannot resume.

A test says “Passes on stand-in outputs”

Section titled “A test says “Passes on stand-in outputs””

The fix works on that data, but a held write’s response was a stand-in, so the real call is not tested. See What “passes on stand-ins” means.

Check these first, for every trigger:

  • The automation is published, and its run state is Active, not Paused.
  • The trigger is in the published version. A trigger added after the last publish is only in the draft.

Then the trigger itself:

  • Webhook: Webhook enabled is on, and the caller uses the current URL and secret. A changed endpoint key changes the URL; a regenerated secret stops the old one. The caller must send the body the input schema expects. A 429 answer means it is sending too much too fast. See Start runs from another system.
  • Schedule: the time zone is the one you meant. A time skipped by a daylight-saving change does not fire, and by default a tick is skipped while the previous run is still going.
  • Email received: the mailbox connection is Connected, not Expired or Authorization revoked. New mail is checked about once a minute.
  • Operation: the form is listed under Operations only while the automation is published and active.

A failed step shows an error code. These are the common ones; each block’s reference page lists all of its own.

Code Block Means Do this
redirect_not_followed HTTP Request The server answered with a redirect. Redirects are not followed, so use the final URL.
comparison_invalid Condition, Switch A compared value has no value, often because it maps a block that did not run on this path. Map from a block every path passes through, or branch earlier. See Branch, loop and reuse.
assertion_failed Assert The condition the block requires did not hold. This is the block doing its job. Fix the data upstream, or use a Condition if the run should branch instead of stop.
json_syntax_invalid Parse JSON The text is not valid JSON. The error gives the line and column. Check what the previous step produced in its output.
value_shape_invalid Apply Shape The value does not match the shape. The error lists up to 16 issues. Fix the source data or the shape.
xml_invalid Validate XML The document does not match its schema, and the block is set to fail on invalid input. Read the listed errors, or route invalid documents to the invalid exit instead.
callee_contract_changed Run automation The called automation’s inputs or returns changed in a way that breaks this caller. Add the block again from the Automations group to take the current contract, and map it again.
call_depth_exceeded, call_limit_exceeded Run automation Calls nest more than 3 deep, or one run made more than 100 calls. Flatten the chain, or split the work across runs.
return_unresolved Called by an automation A required return has no value on the path this run took. Map it on every path, or make that return optional.
provider_response_invalid AI Prompt Response format is JSON, and the model’s reply is not valid JSON. Ask for JSON more firmly in the prompt, or use AI Agent with an answer shape.
ai_classification_invalid_response AI Classify The model answered with something that is not one of your classes. Make the criteria clearer and add a catch-all class.
incomplete_answer AI Agent The agent left a required output field empty, so it took its Stopped exit. Raise Maximum steps, simplify the task, or make the field optional.
pinned_output_invalid Any block held in a draft run The block’s example values on its Samples tab do not match its outputs. Edit the values or click Clear.

HTTP Request fails on any status outside 200 to 299, on a timeout (5 seconds by default), and on a response that does not match its Response fields. The step shows the status. A 401 or 403 usually means the connection needs replacing or signing in again. To handle errors in the automation instead, see Call an outside API.

Write S3 object and Delete S3 object can succeed with the outcome outcome_unknown: the storage service did not confirm. The object may or may not have changed. Read it back before relying on it.

The chat says “Unpublished. Publish a definition before sending messages.” Publish the agent’s automation. See Build your first agent.

Its Write access is Off, so it can only read. Set it to Ask or Smart on the AI Agent block and publish again.

It hit Maximum steps or the Expense guardrail (USD). Raise the limit, or give it a narrower task.

Lainstack is in private beta, with assisted onboarding. Contact the Lainstack team with the run’s reference from its page.

Last updated: