Skip to Content
ReferenceStep Error Messages

Step Error Messages

Match the error text or code from a Step’s Executions tab to find its cause and fix. Quoted headings identify validation messages; the Code editor section covers symptoms whose exact error text depends on the failure.

At a glanceVerified in app · Oct 30, 2026
Use it to
Match an error message or error code from Execution Log to its root cause and fix
Find it
Canvas → Execution Log or Step drawer → Executions tab

Flow and list Step validation errors

Exact validation messageStepCause and fix
“Combine needs exactly two incoming branches”CombineCombine requires one list from each of two connected branches. Connect the missing second branch or remove a third branch.
“Combine must wait for both incoming branches. Set its branch wait mode to AND.”CombineCombine waits for both incoming branches (await: "all"). Set the Step’s wait mode to all (or replace the Combine Step and reconnect both branches).
“First list and Second list must refer to different connected branches”CombineBoth fields reference the same incoming branch. Pick Second list from the other connected branch.
“Sort needs at least one ‘Sort by’ row”SortNo sort rule is configured. Add a Sort by row (leave the field blank to sort a list of scalar values).
“Limit needs a number of items to keep” / “…must be a whole number of zero or more”LimitNumber of items is empty or not an integer (0 is allowed and returns an empty list).
“The list was empty, so this loop ran no passes”RepeaterInformational notice when the input list has zero items; execution continues from When finished. Check upstream Filter or fetch Steps if the list should not be empty.
“This Repeat has no path back from ‘Each time’, so it ran only the first pass”RepeaterThe loop body’s last Step is not wired back into the Repeater. Connect the final Step in the loop body back to the Repeater to run all passes.
“can work on at most 100,000 items at once”Sort, Limit, Remove duplicates, FilterInput list exceeds the 100,000-item ceiling. Fetch smaller pages from the source before passing the list to the Step.
“approverEmail is required but was not provided”Human ReviewApprover address is missing or resolved to empty. Supply one valid email address (lists of addresses are not accepted).

Code editor failures and truncated output

For a Code editor failure, read the error reason and captured output in the Step’s Executions tab. Do not infer a timeout, memory limit, or network policy from a generic execution failure.

Code exceeded its time limit

Symptom: The error reports that the program exceeded its time limit. A timeout reason can include “the program exceeded the 150-second limit and was stopped”.

The Cause: The script did not finish within the execution limit. Check for infinite loops, recursion over large inputs, or expensive computations.

The Fix: Reduce the input with a Limit Step, improve the algorithm, or split the transformation into smaller units of work.

Python exited with an error

Symptom: The error reports an unsuccessful exit or a signal that stopped the program.

The Cause: Read the captured output for the specific exception. An unsuccessful exit alone does not establish that the script ran out of memory.

The Fix: Fix the reported exception first. If the failure depends on input size, test with a smaller list and avoid holding unnecessary copies of large data structures.

Printed output was truncated

{{ N.result.executionOutput }} includes … [truncated: the program printed more than a step result keeps] when output exceeds the Step retention limits:

Stream or output fieldLimitBehavior when exceeded
Per-stream capture cap256 KiB (stdout or stderr default)Cuts off the program’s final lines before they reach the Step result
Retained stdout / stderr in executionOutputLast 100,000 stdout chars and 20,000 stderr charsRetains only the tail of each stream for inspection (not a JSON contract)
Structured JSON in {{ N.result.output }}Parsed from the last non-empty stdout lineOmitted with a warning if the final line is cut off or is not valid JSON

Remove debug prints and end the script with print(json.dumps(result)) within the 100,000-character and 256 KiB limits. Map {{ N.result.output }} only after confirming it exists.

The script needs external data

Use an HTTP Request Step to fetch or post external data, then pass its output into the Code editor with variable placeholders. Keep Python focused on the transformation. For an import failure, check the libraries supported by the Code editor.

Runtime and validation error codes

When a Step or validation check fails in the Executions tab, Execution Log, or over MCP, Glow records a machine code or message alongside the human headline:

Code or messageWhere it appearsRetried?Meaning and fix
AGENT_LIMIT_REACHEDAI AgentNoThe AI Agent hit a run limit (iterations, model calls, tool calls, time, or credits). Partial findings are kept in partialOutput. Raise the limit under Advanced runtime limits.
dangling_connectionValidation—A connection points to a Step that no longer exists on the canvas (or an unconfigured placeholder). Remove the connection and connect the intended Steps.
reference_output_unknownValidation (warning)—A reference names a field that no test has returned yet. Run the upstream Step once, then pick the field from Workflow data.
"Placeholder 99.nothing didn't find data"Runtime reference resolutionNoA reference names a Step number or field that does not exist in the upstream output. Pick the reference from Workflow data (or add | default:"..." for optional fields).
SECRET_IN_UNSAFE_SINKAI, Data Store, Webhook, FileNoA secret ({{ $secret.* }} or {{ $key.* }}) is used where Glow refuses it (AI Step, Data Store, Convert to File, or Respond to Webhook). Move the secret into an HTTP header or app.
GLOW_AI_TOKEN_LIMITAI Agent, AI PromptNoThe workspace’s Glow AI token allowance is exhausted (out_of_credits). Check Billing & Usage or increase the workspace’s token allocation.
out_of_creditsAny billable StepNoThe workspace reached its Step-credit or shared-credit cap before the Step started. Check Usage Controls & Recovery.
TOOL_AUTH_FAILEDAI Agent, App StepsNoThe connected account’s credential expired or was revoked. Click Reconnect on the Step or in Connections.
MCP_PAUSEDMCP toolsNoA workspace Admin paused MCP in Team settings → MCP, or the connection owner paused their MCP connections in Your account → MCP. Resume MCP before retrying.
MCP_SCOPE_INSUFFICIENTMCP test_step / run / etcNoThe MCP connection level or workspace ceiling does not include this tool. Update the connection in Your account → MCP or check Team settings → MCP.
MCP_TEST_SECRETS_REFUSEDMCP test_step / runNoAn MCP test referenced a workspace secret without Allow tests to use workspace secrets (or per-secret test approval). Enable the grant in Your account → MCP or remove the secret.
CODE_SANDBOX_BUSYCode editorYes (transient)Concurrent Python sandbox capacity is in use. Glow queues and retries automatically for up to 15 minutes at 0 credits; for large batches, set Item concurrency between 1 and 4.
CODE_OUTPUT_TOO_LARGECode editorNoPrinted stdout exceeded the 256 KiB capture cap and cut off the final JSON line. Remove debug prints and return only the required fields.
Verify it works
Run
Open a failed Step in Execution Log and match its error code or message against the tables above
You should see
You can identify whether the failure happened before or after billable work started and apply the listed fix.

What’s Next?

Last updated on

Search documentation

Start with a guide, or search by Step, task or error.