Skip to content

Exit codes

fxv exits with 0 when a command succeeds and with a non-zero code when it does not. Most failures exit with 1. A few conditions that a script or integration is likely to handle differently have a code of their own, so the caller can act on them without parsing the error message.

Code Meaning What to do
0 The command succeeded. Nothing.
1 The command failed. This covers every failure without a code of its own, including a remote repository that could not be reached or read. Read the error message, which states the problem and, where there is one, the fix.
3 fxv upgrade --check completed, and a registered integration does not support the release it would install. Update the integration, or upgrade to a release within its range with fxv upgrade --to <VERSION>.
96 The repository uses an older format, and must be upgraded before this version of fxv can use it. Run fxv repo upgrade. See Upgrade Your Repository.
97 The remote endpoint answered, but there is no FlexVault repository at it. Create one there with fxv repo new, or check the endpoint URL if the repository should already exist.
98 A previous command was interrupted, so the workspace is in an inconsistent state. Run fxv resume to finish the command, or fxv resume --rollback to undo it. See Recover an Interrupted Command.
99 Another fxv process, such as a command run from another terminal or an editor plugin, is using the workspace. The message includes that process's ID and command when they are known. Try again once the other command has finished. If no fxv process is running, fxv doctor --fix clears the lock it left behind.

Exit codes in JSON output

With --format json, a failed command prints an envelope whose message.kind is error. Its payload contains the error message and the same exit_code the process exits with, so a script reading the JSON does not need to check the process exit code separately. See Output Formats.