Exit and error codes
Every user-facing error has a stable code. axx explain AXX-E0102 prints an entry from this page; with --json, errors appear in errors[] with code, message, location, hint and docs.
Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
| 0 | Success: every selected scenario passed (or the command succeeded). |
| 1 | At least one scenario failed. |
| 2 | Usage or configuration error: bad flags, invalid axx.yaml, unparsable features. |
| 3 | Undefined or ambiguous steps, or lint violations. |
| 4 | Environment or lifecycle failure: a service did not start, become ready or stop. |
| 5 | Reserved (not used). |
| 130 | Interrupted (Ctrl-C); services were stopped and cleaned up. |
Command line
Section titled “Command line”AXX-E0001
Section titled “AXX-E0001”Invalid usage · exit 2
The command line could not be parsed: an unknown command or flag, a missing flag value, or the wrong number of arguments.
Fix: Run the command with --help to see its flags and arguments.
AXX-E0002
Section titled “AXX-E0002”Invalid -D property · exit 2
A -D flag is not in name=value form.
Fix: Pass properties as -D name=value (repeat the flag for several properties).
AXX-E0004
Section titled “AXX-E0004”Cannot start the run · exit 2
The run options are inconsistent, for example an unknown --order value or a reporter whose output cannot be created.
Fix: Check the message for the offending option; axx run --help lists the valid values.
AXX-E0005
Section titled “AXX-E0005”Missing output directory · exit 2
axx docs export needs to know where to write.
Fix: Pass --out <dir>.
AXX-E0007
Section titled “AXX-E0007”Invalid skills scope · exit 2
axx skills install --scope accepts project (the repository) or user (your home directory).
Fix: Use --scope project or --scope user.
AXX-E0009
Section titled “AXX-E0009”Unknown error code · exit 2
axx explain was given a code that is not in the catalog.
Fix: Check the code; every code is listed on the error-codes reference page.
AXX-E0010
Section titled “AXX-E0010”Unknown schema kind · exit 2
axx schema --kind accepts config (axx.yaml) or one of the fixture spec kinds: factory, fixture, prototype.
Fix: Use --kind config, --kind factory, --kind fixture or --kind prototype.
AXX-E0011
Section titled “AXX-E0011”Invalid pack argument · exit 2
axx pack was given a pack that is not the name of one of Axx’s packs, an existing local directory or a Go module path, or one that is not listed.
Fix: axx pack list lists Axx’s packs; other packs are added by path (./steps, created with axx pack new) or Go module path (github.com/team/axx-grpc@v1.2.0).
AXX-E0012
Section titled “AXX-E0012”Unknown agent or scope · exit 2
axx mcp install connects one coding agent (--agent claude, codex, cursor, vscode or gemini) in one scope: project (the repository’s own files) or user (your home directory).
Fix: Pass --agent with one of the listed agents, and --scope project (the default) or --scope user.
AXX-E0013
Section titled “AXX-E0013”Agent configuration cannot be merged · exit 2
Axx adds its MCP server to an agent’s configuration file only when it can read the file back exactly and keep everything else in it. The file has comments, is not valid JSON, or (Codex) lists its MCP servers in a form a new [mcp_servers.axx] table cannot join. Axx left it alone.
Fix: Add the server yourself: the hint shows the lines to add. Or fix the file and run the command again.
AXX-E0014
Section titled “AXX-E0014”No packs to document · exit 2
axx docs export found no packs to document: it was run outside an Axx project with an Axx that has no packs built in, or in a project that lists no packs.
Fix: Run it in your project’s directory (where axx.yaml is); Axx’s own packs are documented at https://axx.nimbusxr.us/references/packs/. A project adds its packs with axx pack add.
AXX-E0015
Section titled “AXX-E0015”No packs for the skills · exit 2
axx skills install writes the skills with the steps of the project’s packs, and the project lists none: it has no axx-packs.yaml yet, or the file lists no packs.
Fix: Run axx init to set the project up: it installs the skills too. A project that is set up adds the packs its steps come from with axx pack add. axx skills install --scope user installs the skills for every project, with every pack Axx publishes.
AXX-E0016
Section titled “AXX-E0016”A pack’s command failed · exit 2
A command a pack adds to Axx (one axx --help lists in a project that uses the pack) failed, with an error of the pack’s own: the message is the pack’s.
Fix: The hint names the pack. Run the command with --help for what it takes, and see the pack’s reference.
Configuration (axx.yaml)
Section titled “Configuration (axx.yaml)”AXX-E0100
Section titled “AXX-E0100”Config file not found · exit 2
The file given with --config does not exist or cannot be read.
Fix: Fix the path, or omit --config to let Axx search upward for axx.yaml (the file is optional).
AXX-E0101
Section titled “AXX-E0101”Config is not valid YAML · exit 2
axx.yaml (or a profile/local override) has a YAML syntax error; the message quotes the line.
Fix: Fix the indentation or quoting at the reported line. Values containing : or starting with {, [, * or & need quotes.
AXX-E0102
Section titled “AXX-E0102”Invalid configuration · exit 2
axx.yaml does not match the schema: an unknown key, a wrong type or an invalid value. Each problem is reported with its line.
Fix: Add # yaml-language-server: $schema=https://axx.nimbusxr.us/schemas/v0/axx.schema.json to get completion in your editor, or run axx schema to read the schema.
AXX-E0104
Section titled “AXX-E0104”Unknown profile · exit 2
--profile (or AXX_PROFILE) names a profile that is not defined under profiles: in axx.yaml.
Fix: Define the profile or pick one of the listed names.
AXX-E0105
Section titled “AXX-E0105”Invalid –set · exit 2
A --set is not a dotted path to a key of axx.yaml and a value.
Fix: Write --set path.to.key=value, like --set run.workers=1 or --set packs.<pack>.<key>=value. The value is read as YAML, so true and 1 are a boolean and a number.
Feature files and filters
Section titled “Feature files and filters”AXX-E0200
Section titled “AXX-E0200”Feature file does not parse · exit 2
A .feature file has a Gherkin syntax error.
Fix: Fix the reported line. axx validate checks every feature without running anything.
AXX-E0201
Section titled “AXX-E0201”Feature path not found · exit 2
A path given on the command line or in run.paths does not exist.
Fix: Check the path. Paths on the command line resolve from the working directory; run.paths resolve from the directory of axx.yaml.
AXX-E0202
Section titled “AXX-E0202”Invalid tag expression · exit 2
--tags (or run.tags) is not a valid Cucumber tag expression.
Fix: Use tags with and, or, not and parentheses, e.g. --tags '@smoke and not @slow'.
AXX-E0203
Section titled “AXX-E0203”Invalid name filter · exit 2
A --name pattern is not a valid regular expression.
Fix: Escape special characters, or pass a plain substring.
AXX-E0204
Section titled “AXX-E0204”Line is not in a scenario · exit 2
A file:line names a line that no scenario of the file contains, like the feature’s description or its Background, so it would select nothing.
Fix: Give the line of a scenario, of one of its steps or of an Examples row, or the file alone to run all of its scenarios.
AXX-E0205
Section titled “AXX-E0205”Unknown pack in run.uses · exit 2
run.uses lists a pack the project does not load, so no scenario could use it.
Fix: List packs of axx-packs.yaml (axx pack list), like [mobile-ios], or add the pack with axx pack add.
AXX-E0206
Section titled “AXX-E0206”Invalid shard · exit 2
--shard is not a shard of a number of them, like 1/3.
Fix: Give the shard and how many there are, from 1/n to n/n: each runs every nth of the scenarios the run selects, so that together they run each one once.
Packs, steps and resources
Section titled “Packs, steps and resources”AXX-E0300
Section titled “AXX-E0300”Pack cannot be loaded · exit 2
A step pack failed to load or initialize: a step expression that does not compile, a duplicate parameter type, or pack configuration under packs: that is invalid.
Fix: Read the wrapped message. For a pack of your own, fix its step definitions; for Axx’s packs, check packs.<name> in axx.yaml.
AXX-E0301
Section titled “AXX-E0301”Resource not found · exit 2
A file referenced by a step (seed, payload, schema, OpenAPI spec) was not found next to the feature file, in the configured resources roots, or next to axx.yaml.
Fix: Check the path in the step. Keep a file only one feature uses next to that feature file; for a file several features share, add its directory to resources: in axx.yaml.
AXX-E0302
Section titled “AXX-E0302”Unknown pack · exit 2
axx-packs.yaml lists a pack that Axx does not publish, or one this Axx was not prepared with, or the file cannot be read. Axx prepares itself with a project’s packs when it runs in the project.
Fix: Use the name of one of Axx’s packs (see axx pack list), a path to a pack in the project (./steps) or a Go module path; axx pack add checks entries for you. Run Axx from the project so it can prepare the packs.
AXX-E0303
Section titled “AXX-E0303”Packs cannot be prepared · exit 4
The first time Axx runs with a list of packs, it prepares itself with them, downloading what it needs once. The download failed.
Fix: Check the network: Axx downloads from go.dev and the Go module proxy (GOPROXY applies). Then run again; later runs start immediately.
AXX-E0304
Section titled “AXX-E0304”Packs do not build · exit 2
Preparing Axx with the project’s packs failed. The compiler output is in the message.
Fix: A pack is a Go package that exports func Pack() core.Pack. Fix the reported errors; axx pack new <dir> scaffolds a working pack.
AXX-E0305
Section titled “AXX-E0305”Delve is needed to debug step code · exit 4
axx run --debug-steps runs Axx under Delve, Go’s debugger, so an IDE can stop at breakpoints in step code. Axx builds Delve itself the first time, from the Go module proxy, with the Go it downloads; it could not, and no dlv is installed.
Fix: Check the network and run again, or install Delve with go install github.com/go-delve/delve/cmd/dlv@latest, or set AXX_DLV to the path of a dlv.
AXX-E0306
Section titled “AXX-E0306”Delve did not start · exit 4
axx run --debug-steps started Delve, but it exited or never began listening for a debugger. Its output is in the message.
Fix: Check that the port is free (--debug-steps=<port> picks another) and that Delve works on this machine (dlv version).
AXX-E0310
Section titled “AXX-E0310”Unknown step · exit 2
axx steps show was given text that is no loaded step’s id or expression and matches no step as a step line, or a line that matches several steps.
Fix: The hint names the closest steps. Show one by its id (axx steps show rest.response.status), list the ids with axx steps, or search by words with axx steps search <words>.
Service lifecycle
Section titled “Service lifecycle”AXX-E0400
Section titled “AXX-E0400”Invalid service configuration · exit 2
A services.<name> setting cannot be used: a bad readiness URL, address or regex, an unknown signal, or an invalid debug setting.
Fix: Fix the reported key; axx schema documents every service setting.
AXX-E0401
Section titled “AXX-E0401”Unknown service dependency · exit 2
services.<name>.dependsOn names a service that is not declared.
Fix: Declare the service or remove it from dependsOn.
AXX-E0402
Section titled “AXX-E0402”Dependency cycle · exit 2
Services depend on each other in a cycle, so no start order exists.
Fix: Remove one of the dependsOn edges in the reported cycle.
AXX-E0403
Section titled “AXX-E0403”Unknown service · exit 2
A service named with --attach, --debug, axx up <service> or similar is not declared in axx.yaml.
Fix: Use one of the service names listed in the message.
AXX-E0404
Section titled “AXX-E0404”Service has no command · exit 2
Axx must start a service that has no command.
Fix: Add command:, or run the service yourself and pass --attach <service>.
AXX-E0405
Section titled “AXX-E0405”Service directory not found · exit 2
services.<name>.dir does not exist or is not a directory.
Fix: Fix dir; it resolves from the directory of axx.yaml.
AXX-E0406
Section titled “AXX-E0406”Service failed to launch · exit 4
The service’s process could not be started, typically because the executable is not on PATH.
Fix: Check command (arguments are not run through a shell unless shell: true).
AXX-E0407
Section titled “AXX-E0407”Service exited before ready · exit 4
The service’s process exited before its readiness checks passed. The tail of its log is included.
Fix: Read the log excerpt (full log under .axx/logs/) and run the command by hand to reproduce.
AXX-E0408
Section titled “AXX-E0408”Service not ready in time · exit 4
The service kept running but did not pass its readiness checks within ready.timeout.
Fix: Check the readiness URL/port/log pattern, or raise ready.timeout. The last check result is in the message.
AXX-E0409
Section titled “AXX-E0409”Debugger unavailable · exit 4
Debug mode was requested but no debugger was listening, and debug.onUnavailable is fail.
Fix: Start the IDE debugger first (axx ide intellij|vscode writes the configurations), or set onUnavailable: fallback.
AXX-E0410
Section titled “AXX-E0410”Service could not be stopped · exit 4
The service’s process group did not exit after SIGTERM, the grace period and SIGKILL.
Fix: Look for processes that detach from their group; axx down retries using the state file.
AXX-E0411
Section titled “AXX-E0411”Service cleanup failed · exit 4
The service’s cleanup command exited non-zero. The run still completed; this is reported so leaks are visible. The state file keeps the cleanup, and runs refuse to start services until it succeeds (AXX-E0415).
Fix: Fix what made it fail (its output is above), then run axx down: it runs the cleanup again.
AXX-E0412
Section titled “AXX-E0412”No active tags · exit 2
Active startup is on with onNoTags: error, and the selected scenarios carry no tags, so Axx cannot tell which services to start.
Fix: Tag the scenarios, set active.onNoTags: fallback (start everything), or disable active startup.
AXX-E0413
Section titled “AXX-E0413”Run state file error · exit 4
.axx/run/state.json (used by axx up/axx down to find running services) could not be read or written.
Fix: Check permissions on .axx/; deleting the stale file is safe when no services are running.
AXX-E0414
Section titled “AXX-E0414”Startup interrupted · exit 130
Starting services was interrupted (Ctrl-C). Every service that had started was stopped and cleaned up.
Fix: Nothing to fix; re-run when ready.
AXX-E0415
Section titled “AXX-E0415”Earlier run not cleaned up · exit 4
The state file records services an earlier run left behind, and they could not be cleaned up before this run: a cleanup failed again, or what is left sits beside services a run still going (or axx up) owns. Their data (containers, volumes, recorded requests) would be what this run starts from, so no service is started. A killed run’s leftovers alone are cleaned up by the next run.
Fix: Run axx down: it stops what is left and runs the cleanup again. axx doctor and the MCP env status list what is left.
axx host
Section titled “axx host”AXX-E0500
Section titled “AXX-E0500”The axx host refused the run · exit 4
The axx host serving the project (.axx/host.json) did not take the run: it did not give the host’s token, it speaks another version of the host’s protocol, or it loaded a configuration outside the project the host serves. Or .axx/host.json cannot be read.
Fix: Run the same version of Axx as the host, in the project it serves, as the user it runs as. To start the services without the host, stop it.
AXX-E0501
Section titled “AXX-E0501”Changed services not approved · exit 4
The services’ definition (axx.yaml’s services, what their compose projects resolve to, the files their commands run) changed since the person running the axx host approved one, and they refused the change. The host refuses that definition again, without asking, until it restarts. A host that does not run in a terminal or an editor cannot ask, and refuses every change.
Fix: Ask the person running the host: their terminal or editor shows what changed, and what in it reaches past a container. Or change the services and compose files back.
AXX-E0502
Section titled “AXX-E0502”Lost the axx host · exit 4
The connection to the axx host ended while it kept the run’s services: the host stopped, or was killed. A host stops and cleans up the services of every run it loses.
Fix: Start axx host again and run again; its terminal says what happened.
AXX-E0503
Section titled “AXX-E0503”An axx host already serves the project · exit 4
axx host was started in a project another axx host already serves: runs take turns with one host’s services.
Fix: Use the host that runs (its terminal, or the editor that started it), or stop it first.
AXX-E0504
Section titled “AXX-E0504”Cannot read the services’ definition · exit 4
The axx host could not read the services’ definition: it could not load axx.yaml with the run’s configuration, profile and settings on its machine, or a service’s command runs compose and docker compose config (with the command’s files and flags) failed. The host approves services by what compose resolves, so it starts none. Why is shown where the host runs, in its terminal or editor, and not to the run: it can quote the host machine’s environment and files.
Fix: Where the host runs, read why; then fix axx.yaml or the compose file, or run the command it shows in the service’s directory.
AXX-E0505
Section titled “AXX-E0505”Waiting for the axx host interrupted · exit 130
The run stopped while it waited for the axx host: for another run to finish with the services, for an approval, or for the services to be ready. The host stops and cleans up whatever it had started for it.
Fix: Nothing to fix; run again when ready.
AXX-E0506
Section titled “AXX-E0506”The axx host does not answer · exit 4
.axx/host.json names an axx host that does not answer (it was killed, and left the file), so a run starts its services itself, with a warning. Or axx host cannot listen on the address --addr gives.
Fix: Start axx host again, or delete .axx/host.json; for --addr, pick a free loopback address.
AXX-E0507
Section titled “AXX-E0507”Changed services not answered yet · exit 4
The services’ definition changed since the person running the axx host approved one, and they did not answer within a minute whether runs may start it. The question stays open where the host runs: the next run with the same definition has their answer.
Fix: Tell the person running the host; run again once they answered.
Reporters
Section titled “Reporters”AXX-E0600
Section titled “AXX-E0600”Unknown reporter · exit 2
--format or run.reporters names a reporter that does not exist.
Fix: Use one of: pretty, progress, compact, junit, messages, cucumber-json, html, agent, teamcity.
Model stubs
Section titled “Model stubs”AXX-E0700
Section titled “AXX-E0700”Invalid model contract · exit 2
A stub’s model contract (contract.json, what an app relies on from the model) cannot be read or used: it is not valid JSON, has an unknown key, or a value a contract does not take (a type, a shape, an image layout, a task). The message names what.
Fix: Fix the contract, or write it again from the real model with axx models contract <model> -o <stub>/contract.json.
AXX-E0701
Section titled “AXX-E0701”Invalid model stub mapping · exit 2
A mapping of a stub (a file of its mappings folder) cannot be used: an unknown key, an input that is neither a picture nor a tensor of the input’s size, an answer the model’s outputs cannot give (an unknown label, the wrong number of values), a second default or none. The message names the mapping.
Fix: Fix the mapping. The stubs guide shows what a mapping’s input and output take.
AXX-E0702
Section titled “AXX-E0702”Cannot read the model · exit 2
axx models contract reads a model’s contract from its file, and could not: the file is not a model of a format Axx stubs (by its extension), or not a model it can read (an output that is not a tensor, like a classifier’s ZipMap).
Fix: Give it the model file the app loads, in a format the message lists; export a classifier without its ZipMap.
AXX-E0703
Section titled “AXX-E0703”Cannot write the stub · exit 2
axx models build resolved the stub, but cannot write it as a model of its contract’s format: an ONNX operator set too old for a stub, or an answer that does not fit an output.
Fix: The message says what; export the model with a later operator set, or fix the contract.
AXX-E0704
Section titled “AXX-E0704”Cannot use the platform model stub · exit 2
A prebuilt platform API artifact is invalid, names an unsupported API or contract, or its debug test adapter cannot start. A configured API is never allowed to fall back silently to the real model.
Fix: Rebuild the artifact from its contract and mappings, copy it into the app’s axx-models folder before launch, and use a supported debug simulator, emulator or browser test environment. The message identifies the unsupported input or missing tool.
AXX-E0800
Section titled “AXX-E0800”No lint rules · exit 2
axx.yaml has a lint section, but it (with its includes) defines no rules, so axx lint would check nothing.
Fix: Add rules under lint.rules, or include a rules file with lint.include. Remove the lint section if the project has no isolation rules.
AXX-E0801
Section titled “AXX-E0801”Lint include not found · exit 2
A file named in lint.include (or in an included file’s include) does not exist. Includes resolve relative to the file that lists them.
Fix: Fix the path. If the file is generated (axx-lint.generated.yaml), run axx fixtures generate first.
AXX-E0802
Section titled “AXX-E0802”Lint include cycle · exit 2
A lint rules file is included more than once, for example two files that include each other. Every file may be loaded once.
Fix: Remove the repeated include.
AXX-E0803
Section titled “AXX-E0803”Invalid lint include · exit 2
An included lint rules file is not valid YAML, has keys the lint section does not allow, or has a config: block (only the including file configures lint).
Fix: Keep only rules: and include: in included files, in the same format as the lint section of axx.yaml. The message lists each problem with its line.
AXX-E0804
Section titled “AXX-E0804”Invalid lint configuration · exit 2
A lint rule cannot be used: a missing regex (or jsonPath for type: jsonpath), a regex that is not valid Java syntax or has no capture group, an invalid glob or JSONPath, no filePatterns, or a config.baseDir that is not a directory.
Fix: Fix the reported key. Regexes use Java syntax and extract their first participating capture group, e.g. id:\s*"([^"]+)".
AXX-E0805
Section titled “AXX-E0805”Invalid lint option · exit 2
axx lint --format names an unknown format, --mode is not error or warn, or an output file cannot be written.
Fix: Use --format human|json|junit|sarif|github (optionally NAME:FILE) and --mode error|warn.
AXX-E0810
Section titled “AXX-E0810”File cannot be evaluated · exit 3
A file selected by a type: jsonpath rule is not valid JSON, YAML, XML or CSV (whichever its extension says), or the JSONPath cannot be evaluated over it, so its values cannot be checked. This fails the rule even in warn mode.
Fix: Fix the file at the reported line, or narrow the rule’s filePatterns/excludePatterns so it only selects the files that hold the values.
AXX-E0811
Section titled “AXX-E0811”File cannot be read · exit 3
A file selected by a lint rule could not be read (permissions, or it disappeared during the run).
Fix: Check the file’s permissions, or exclude it with excludePatterns.
AXX-E0812
Section titled “AXX-E0812”File skipped: too large · exit 0
A file selected by a lint rule is larger than lint.config.maxFileSize (default 5 MB) and was not checked. This is a warning.
Fix: Narrow the rule’s filePatterns, or raise lint.config.maxFileSize.
AXX-E0820
Section titled “AXX-E0820”Duplicate test data · exit 3
A value that a lint rule requires to be unique occurs more than once: anywhere (global-unique), within one file (file-unique), or in more than one file (cross-file-unique). Scenarios running in parallel against shared infrastructure collide on such values.
Fix: Give each occurrence its own value (for example prefix ids with the scenario or file name). If the value is intentionally shared, add it to the rule’s ignoreValues; if the rule is too strict, change its validation. mode: warn reports without failing.
AXX-E0821
Section titled “AXX-E0821”Lint rule finds no values · exit 0
A lint rule scanned files but its regex (or jsonPath) extracted no value from any of them, so it checks nothing and reports ok. Most often the pattern misses the files’ format, like a regex anchored at the start of the line (^\s*reference:) for YAML list items, whose lines start with - . This is a warning.
Fix: Test the pattern against a line of one of the files and fix it (^\s*-?\s*reference:\s*"?([^"\s]+) allows the dash), or narrow filePatterns to the files that hold the values.
AXX-E0830
Section titled “AXX-E0830”SQL ordinal addresses a missing entry · exit 0
A step addresses the Nth selection (or trigger) of the scenario, but fewer than N were retrieved (or created) before it, counting every database service. The step always fails at runtime. This is a warning.
Fix: Retrieve the selection before asserting on it, or use the ordinal of an earlier retrieval. Selections and triggers are numbered in the order the scenario creates them.
AXX-E0831
Section titled “AXX-E0831”SQL ordinal label does not match · exit 0
A retrieval (or trigger) step is labelled with an ordinal it cannot have: selections and triggers are appended in the order they are created, and the ordinal in a creating step is only a label. Later steps that use the label address another entry. This is a warning.
Fix: Number retrievals in the order they happen (1st, 2nd, 3rd …), per database service, and address them by that number.
AXX-E0832
Section titled “AXX-E0832”REST ordinal addresses a missing request · exit 0
A step adds the Nth request of a REST service before the (N-1)th was added, or addresses a request (or its response) that no step added before it: a service’s requests are numbered in the order they are added. The step always fails at runtime. This is a warning.
Fix: Add requests in order (a GET request to ..., then a 2nd ordered POST request to ...), per service, and address them by that number.
AXX-E0833
Section titled “AXX-E0833”REST request added twice · exit 0
A step adds a request of a REST service that an earlier step added: without an ordinal, a GET request to ... is the service’s 1st request. The step fails at runtime (Method already set). This is a warning.
Fix: Add the next request with the ordered form, like a 2nd ordered GET request to ....
AXX-E0834
Section titled “AXX-E0834”REST payload value in single quotes · exit 0
A row of the request payload properties are: has a value in single quotes, like '{"name":"Ada"}'. In a table, single quotes are part of the value, so the property is set to that text, quotes and all, not to the JSON or the string inside (single quotes do quote a value in a step’s own text). The request then usually fails for a reason the scenario did not mean to test. This is a warning.
Fix: Write JSON without quotes ({"name":"Ada"}) and a string in double quotes ("10115") or bare.
AXX-E0835
Section titled “AXX-E0835”Stale selection · exit 0
A step without an ordinal (the selection has 1 row, the 1st document for the selection …) checks a scenario’s first selection, but a later selection was retrieved before it and no step checks that one. The step reads as if it checked the latest, while it asserts on what came back before; the later retrieval checks nothing (or only that its rows came, for a polling one). This is a warning.
Fix: Name the selection the step means, like the 2nd selection has 1 row: selections are numbered in the order the scenario retrieves them.
AXX-E0836
Section titled “AXX-E0836”Service used before it is registered · exit 0
A REST, SQL, MongoDB or Kafka step comes before the scenario registers any service of its pack: the step finds no service and fails at runtime (“No database services set”). This is a warning; it is not checked in a project that loads packs of its own, which may register services out of sight.
Fix: Register the service first, in the Background for every scenario: the <name> service with the following properties: (REST), a(n) <name> database with the following properties: (SQL), a(n) <name> mongo database with the following properties: (MongoDB) or the <name> kafka service with the following properties: (Kafka).
AXX-E0837
Section titled “AXX-E0837”Scenario checks several behaviors in turn · exit 0
A scenario does something and checks it, then does something else and checks that: a When step after a Then (When … Then …, then When … Then … again). Each round is a behavior of its own, so the scenario is several in one: a failure in one round hides whether the others hold, and its name can say what only one of them proves. This is a warning.
Fix: Write a scenario per behavior: Given steps for the state it starts from (what an earlier round did, like a request executed in a Given), When for the one thing someone does, Then for what is true afterwards.
Fixtures
Section titled “Fixtures”AXX-E0900
Section titled “AXX-E0900”Invalid fixtures configuration · exit 2
The fixtures section of axx.yaml cannot be used: a sources root does not exist, lies inside baseDir or contains it, a glob is malformed, a conformance rule names an unknown family, or two families or expression functions claim one name.
Fix: Fix the fixtures section of axx.yaml; sources roots are relative to fixtures.baseDir and must be disjoint from it.
AXX-E0901
Section titled “AXX-E0901”Invalid fixture spec · exit 2
A *.factory.yaml, *.fixture.yaml or *.prototype.yaml file is malformed (unknown field, wrong type, empty factory), cannot be bound to a factory, claims a fixture key twice, names an unsupported family, or declares an identity without a path.
Fix: The message names the file. axx schema --kind factory|fixture|prototype prints the formats; bind a fixture explicitly with factory: <root-relative-path>.
AXX-E0902
Section titled “AXX-E0902”Fixture generation failed · exit 1
Expanding the specs failed: a required field no layer resolves, a value of the wrong type, an unknown field, a schema oracle rejecting the output, an identity collision, a $ref that resolves to nothing, or an expression that cannot be evaluated.
Fix: Fix the factory sources (defaults:, prototype, fixture data) as the message says, then run axx fixtures generate.
AXX-E0903
Section titled “AXX-E0903”Hand-edited managed file · exit 1
axx fixtures generate refused to overwrite managed files whose content no longer matches the sha256 in axx-fixtures.manifest.yaml (or the pairings lock was edited).
Fix: Lift the change into the factory spec (or re-adopt the file), or revert the file. There is no force option that discards edits.
AXX-E0904
Section titled “AXX-E0904”Fixture check failed · exit 1
axx fixtures check found a managed file that differs from what its factory generates (drift), a missing ignored output, or a manifest that does not list exactly what the factories produce.
Fix: Edit the factory sources, not the generated files, and run axx fixtures generate; commit the result.
AXX-E0905
Section titled “AXX-E0905”Adoption refused · exit 1
axx fixtures adopt refused: the files are already managed, the factory exists, fixture keys collide, the glob matches nothing, the family cannot adopt, or regenerating from the adopted spec would change a file’s data. Nothing was written.
Fix: Fix the cause the message names and run adopt again; --dry-run verifies without writing.
AXX-E0906
Section titled “AXX-E0906”Version control command failed · exit 4
axx fixtures untrack could not run git ls-files or git rm --cached (the tool is missing, the directory is not a work tree, or it timed out).
Fix: Run it inside the repository that holds the fixtures, with git on PATH.
AXX-E0907
Section titled “AXX-E0907”Fixture schema unusable · exit 2
A governing schema (Avro .avsc, JSON Schema, OpenAPI component, XSD, .proto or descriptor set, SQL DDL) cannot be read or compiled, or the reference form is not supported (classpath: and class: refs need a JVM).
Fix: Check the path: factory.schema is relative to the factory file, a conformance rule’s schemaRef to fixtures.baseDir.
AXX-E0908
Section titled “AXX-E0908”Fixture file I/O error · exit 1
A fixture, spec, manifest or output file could not be read or written.
Fix: Check that the path exists and that its permissions allow reading and writing.
AXX-E0909
Section titled “AXX-E0909”Invalid adopt options · exit 2
axx fixtures adopt needs either –schema, –files and –factory, or –into and –files.
Fix: Run axx fixtures adopt --help.
AXX-E0910
Section titled “AXX-E0910”Nothing to explain · exit 2
axx fixtures explain was given a file the fixture factory does not generate (and no fixture’s *.fixture.yaml), or a path that holds no single value in it: a path it has no value at, an object rather than one of its fields, or a dataset path that is not <table>[<row>].<column>.
Fix: Give a file listed in axx-fixtures.manifest.yaml (or its *.fixture.yaml) and the dotted path of one value in it, like recipient.postcode or items[0].sku.