Skip to content

Error reference

Every user facing error carries a code of the form AF-<AREA>-<NNN>. This page is generated from engine/internal/errors/catalog.yaml, so it cannot fall behind the code: a code with no entry here fails the build, and an entry that nothing returns fails it too.

Scripts can branch on these. They are stable.

CodeMeaning
0Success.
1A generic failure. The message says what.
2The command was used incorrectly.
3Configuration is wrong or incomplete.
4Authentication or authorization failed.
5A provider failed. Often retryable.
6A policy denied the operation.
7Verification failed. Masking or an invariant.
8A test failed. Agent verdicts or load thresholds.
9Interrupted, and teardown completed cleanly.
10Interrupted, and resources are still recorded. Run af down again.

37 further codes are reserved for features this version does not have. They are in engine/internal/errors/catalog.yaml and are left out here because this page is for looking up an error you have actually seen.

The agent runner could not be started: {detail}

What to do. Run ‘af doctor’ to check that the runner and its browsers are installed.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreconcepts/agents

Workflow {workflow} exhausted its budget of {budget} before completing.

What to do. Raise the budget for {workflow} in the manifest, or split it into smaller workflows.

Exit code8
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/workflows

The agent runner produced no readable output: {detail}

What to do. This is the runner’s own failure and not the application’s; the output above is what it printed.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreconcepts/agents

The agent runner could not be found: {detail}

What to do. Install it with ‘af runner install’, or point at a checkout with —runner.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/agents

The build for service {service} failed after {duration}.

What to do. Read the build log above; the first error line names the step that failed.

Exit code1
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/build

The Dockerfile for {service} is not valid at line {line}: {detail}

What to do. Fix the line and run ‘af up’ again.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/build

The build context for {service} is {size}, above the {limit} limit.

What to do. Add large directories to .dockerignore; the build does not need them.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/build

The build context for {service} holds more than {count} files; {path} is where the count was reached.

What to do. Add the generated directories to .dockerignore; a build context should hold source, not output.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/build

No build strategy could be detected for {service}.

What to do. Add a Dockerfile to {path}, or set services.{service}.build to a strategy the reference lists.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/build

No control plane token is configured.

What to do. Create an engine token in the control plane, then set AF_CONTROL_PLANE_TOKEN. Everything except this command works without one.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreself-hosting/control-plane

The control plane has no environment called {env}.

What to do. Check the identifier with ‘af env list’, or confirm the engine that created it was sending events to this control plane.

Exit code4
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreself-hosting/control-plane

The source database at {host} could not be reached.

What to do. Check that the host is reachable from this machine and that the connection string names the right port.

Exit code5
RetryableYes. The engine retries automatically where it can.
Moreproviders/overview

The source database is Postgres {found}, and this provider supports {supported}.

What to do. Use a provider that supports Postgres {found}, or upgrade the source.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreproviders/overview

The golden version {version} no longer exists.

What to do. Run ‘af golden list’ to see the available versions, then ‘af up —golden ’.

Exit code5
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/goldens

The golden version {version} is still referenced by {count} environments and cannot be collected.

What to do. Run ‘af down’ on those environments first, or leave the version in place.

Exit code6
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/goldens

The provider’s concurrent branch limit ({limit}) is reached.

What to do. Run ‘af down’ on unused environments or raise the limit in the provider settings.

Exit code5
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreproviders/limits

No application could be detected in {path}.

What to do. Declare your services by hand in antifailure.yaml; the manifest reference lists the minimum fields.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/detection

The provider rate limited this operation and asked to wait {retry_after}.

What to do. The engine retries automatically. If this persists, lower the concurrency in the manifest.

Exit code5
RetryableYes. The engine retries automatically where it can.
Moreproviders/limits

Load could not be generated: {detail}

What to do. Bring the environment up with ‘af up’, and check the load section of the manifest.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/load

Load exceeded {count} thresholds the manifest sets.

What to do. The breaches are listed above, worst first. Raise the threshold or fix the regression.

Exit code8
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/load

No antifailure.yaml was found in {path} or any parent directory.

What to do. Run ‘af init’ in the repository root to create one.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

The manifest at {path} is not valid: {detail}

What to do. Fix the reported line, then run ‘af doctor’ to revalidate.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

The manifest at {path} declares schema version {found}, which this build does not understand.

What to do. Upgrade with ‘af version -check’ and install the release that supports version {found}.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

‘af init’ needs a terminal to ask questions, and this session has none.

What to do. Pass —non-interactive together with the flags listed by ‘af init —help’.

Exit code2
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/cli#af-init

The manifest at {path} is larger than the {limit} limit.

What to do. Split the configuration or remove generated content; a manifest describes services, it does not contain them.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

The golden {version} has no valid verification attestation and cannot be branched.

What to do. Run ‘af golden verify {version}’; a golden is branchable only once verification has passed.

Exit code7
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/verification

Verification found data matching {detector} in {table}.{column}.

What to do. Add a masking rule for {table}.{column} and refresh the golden. The value itself is never printed.

Exit code7
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/verification

Masking could not run: {detail}

What to do. Run ‘af mask plan’ to see what was decided for each column.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/masking

The request to {host} was blocked by rule {rule}.

What to do. Add an egress rule for {host} with the mode you intend, or leave it blocked.

Exit code6
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreconcepts/egress

{request} is not a request that can be explained: {detail}

What to do. Pass a method and a URL, as in ‘af net explain GET https://api.stripe.com/v1/charges’.

Exit code2
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/cli#af-net-explain

No mock matched {method} {path} on {host}.

What to do. A fixture skeleton was written to {suggestion}. Fill it in and run again.

Exit code6
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/mocking

No message matching {match} arrived within {timeout}.

What to do. Check ‘af net log’ to see whether the request was refused, and ‘af inbox list’ for what did arrive.

Exit code8
RetryableYes. The engine retries automatically where it can.
Moreguides/inbox

The webhook could not be delivered to {service}: {detail}

What to do. Run ‘af status’ to check the service is up, and check the path against the manifest’s webhook_path.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreguides/webhooks

The command ‘{command}’ is not available in this version.

What to do. See the roadmap for when it lands; ‘af version’ reports the version you are running.

Exit code2
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/cli

The Docker daemon at {endpoint} could not be reached.

What to do. Start Docker and run ‘af doctor’ to confirm; on macOS that is Docker Desktop.

Exit code5
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

Another Antifailure process holds the lock for this branch (process {pid}, since {since}).

What to do. Wait for it to finish, or stop it and run ‘af down’ to clean up.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreconcepts/journal

Service {service} did not become ready within {timeout}.

What to do. The last log lines are above. Check the health path {health} and the port the service binds.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

Service {service} exited with code {code} during startup.

What to do. The last log lines are above. Run ‘af logs {service}’ for the full output.

Exit code1
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/local-runtime

No free port was found in the range {range} to publish the environment on.

What to do. Free a port in that range, or set runtime.port_from in the manifest to a range that is clear.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

Writing to {path} failed because the disk is full; {needed} is required.

What to do. Free space on the volume holding {path}, then run the command again.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

Docker has no room left for the environment: {detail}

What to do. Run ‘docker system prune’ or raise the disk limit in Docker’s settings.

Exit code5
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

The environment could not be torn down completely; {count} resources are still recorded.

What to do. Run ‘af down’ again once the provider is reachable; the journal remembers what is left.

Exit code10
RetryableYes. The engine retries automatically where it can.
Moreconcepts/journal

The environment could not be placed: {detail}

What to do. Run ‘af doctor’ to check the runtime, then ‘af down’ to clear anything left behind.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreguides/local-runtime

The services depend on each other in a cycle: {cycle}

What to do. Remove one of the depends_on entries; a cycle has no order that can start.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

Service {service} depends on {missing}, which the manifest does not declare.

What to do. Add a service called {missing}, or correct the depends_on entry.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Morereference/manifest

The variables {names} are declared in the manifest but were not found in any configured source.

What to do. Add them to one of the searched sources: {sources}.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/secrets

The value supplied for {name} carries a live credential prefix, and {name} is configured for sandbox use.

What to do. Point {name} at a sandbox credential; the environment must never hold a live key.

Exit code6
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/secrets

The encrypted local store has no passphrase: no system keyring answered and AF_SECRET_PASSPHRASE is not set.

What to do. Set AF_SECRET_PASSPHRASE, or store the passphrase in the system keyring on a platform that has one. There is deliberately no default: a store encrypted with a passphrase everybody knows only looks encrypted.

Exit code3
RetryableNo. Retrying the same operation unchanged will fail the same way.
Moreguides/secrets

The environment certificate could not be created: {detail}

What to do. Run ‘af doctor’ to check the runtime, then bring the environment up again.

Exit code1
RetryableYes. The engine retries automatically where it can.
Moreconcepts/egress