Validation and error codes
All 57 codes the factory API and the workflow validator return, with the message each one carries.
Codes the API returns in issues[].code when it refuses a request, and the codes a workflow gets when it is validated for publish or a dry run. The message is the one the console shows; {node} is replaced with the step’s name.
| Code | Message | Explained in |
|---|---|---|
action_conflict |
In {node}, the event already names the action “ | Triggers and webhook conditions |
adapter_unavailable |
In {node}, that model is not one this workflow can use. Choose clef-flash, clef, jev, tev1, pix-fast or a model from your vault. | Decision node |
already_decided |
Human approval | |
approver_missing |
Name who can approve in {node}. Add a team, a member, a role or the repository admins. | Human node |
autonomy_above_max |
autonomy is above autonomy.max ( | Autonomy levels |
bad_request |
||
bad_state |
Runs and steps | |
budget_exceeds_parent |
The run budget is larger than the month budget. Lower the run budget or raise the month budget. | Budgets |
conclusion_unsupported_event |
In {node}, the conclusion condition only applies to check runs, check suites, workflow runs and deployment statuses. Remove it or choose one of those events. | Triggers and webhook conditions |
crew_not_found |
Choose the crew or agent that {node} hands the work to. | Crew node |
custom_required |
security.scanners custom needs security.scanners.custom | Trust and SLSA |
cycle |
%s is connected to itself. Remove that connection. | Graph limits |
duplicate_edge |
%s is connected to %s twice for the same outcome. Remove one of the connections. | Graph limits |
duplicate_id |
{node} has the id “ | Graph limits |
environment_unsupported_event |
In {node}, the environment condition only applies to deployment statuses. Remove it or choose the deployment status event. | Triggers and webhook conditions |
firewall_condition_unsupported_source |
In {node}, %s only applies to the %s source. Remove it or change the source. | Source events and firewall triggers |
forbidden |
||
fork_pr_needs_human |
In {node}, the trigger takes pull requests from forks, and a crew could start without a person approving first. Add an approval step before the crew, or set where the change comes from to the same repository only. | Human node |
github_calls_exceed_run_cap |
The steps can make %d GitHub calls in one run, more than the cap of %d. Lower the call limit of a step or raise the cap. | Graph limits |
github_rate_limited |
GitHub quota and the data plane | |
grant_missing |
||
invalid |
unknown route | |
invalid_base |
In {node}, the base branch must be default, pr_head or the name of a branch. | Output node |
invalid_enum |
In {node}, the choice for %s is not accepted. Choose one of: %s. | Graph limits |
invalid_glob |
In {node}, %s has a blank entry. Fill it in or remove it. | Triggers and webhook conditions |
invalid_id |
The id of {node} cannot be used. An id is 1 to 40 letters, digits, dashes or underscores. | Graph limits |
invalid_loop |
Only a gate or a decision can send work back to a crew. The connection from %s to %s is not one of those, so it cannot be a loop. | Graph limits |
invalid_outcome |
“ | Decision node |
invalid_repo |
In {node}, the repository for review tickets must be owner/name. | Graph limits |
invalid_type |
In {node}, %s must be a list of patterns. | Graph limits |
new_to_package_only |
In {node}, “new to the repository” applies to packages only. Set it to the organisation or remove it. | Scan node |
no_trigger |
Add a trigger. A workflow needs something to start it. | Graph limits |
not_found |
the trigger’s node is no longer in the workflow | |
out_of_range |
In {node}, %s must be %s from %g to %g (0 keeps the agent’s own). | Graph limits |
package_type_unsupported_event |
In {node}, the package type condition only applies to published packages. Remove it or choose the registry package event. | Triggers and webhook conditions |
paths_need_push |
In {node}, changed paths can only be checked on a push, because GitHub sends the file list with pushes only. Use the push event or remove the path condition. | Triggers and webhook conditions |
permission_missing |
github.check_runs needs the App permission checks: write on every managed installation | |
provider_not_allowed |
||
required |
In {node}, choose a value for %s. | Graph limits |
review_state_unsupported_event |
In {node}, the review state condition only applies to pull request reviews. Remove it or choose the pull request review event. | Triggers and webhook conditions |
revision_conflict |
The settings document | |
runs_on_invalid |
In {node}, where the step runs is not set up correctly. Choose Any host, Pix Sandbox, Self-hosted, a host or a host label. | Crew node |
scope_unmanaged_repo |
Graph limits | |
severity_unsupported_event |
In {node}, the severity condition only applies to Dependabot and code scanning alerts. Remove it or choose one of those events. | Triggers and webhook conditions |
slug_taken |
||
threshold_adapter_missing |
In {node}, say which model the minimum confidence was set for. Confidence from one model is not comparable with another. | Decision node |
threshold_required |
changing systemone.model needs systemone.min_confidence in the same request | Decision node |
too_long |
The title of {node} is too long. Use at most 200 characters. | Graph limits |
too_many |
In {node}, %s has too many entries. Use at most %d. | Graph limits |
too_many_edges |
A workflow holds at most %d connections between steps. Remove some connections or split the work into two workflows. | Graph limits |
too_many_nodes |
A workflow holds at most %d steps. Remove some steps or split the work into two workflows. | Graph limits |
tz_invalid |
In {node}, that is not a timezone name. Use a name such as UTC or Australia/Melbourne. | Schedules |
unknown_condition |
In {node}, “%s” is not a setting of %s. Use only: %s. | Triggers and webhook conditions |
unknown_node |
A connection starts at a step that is not in the workflow (“%s”). Remove the connection. | Graph limits |
version_conflict |
The settings document | |
workflows_published |
persistence.postgres can be off only while no workflow is published | The settings document |
write_failed |
could not update the Factory budget |