Stable exit-code matrix
| Command | Code | Meaning |
|---|---|---|
scan / import | 0 | The command completed and no finding reached BLOCK; strict coverage requirements also passed. |
scan / import | 1 | At least one finding reached BLOCK under the enforced finding policy. |
scan / import | 2 | Usage, runtime, scanner, or requested coverage contract failure. |
verify | 0 | The selected finding is resolved. |
verify | 1 | The selected finding is still present. |
verify | 2 | The finding is unknown or could not be located. |
benchmark compare | 1 | A benchmark metric regressed beyond the accepted threshold. |
ignore validate | 1 | The ignore file failed validation. |
scan: automation versus decision
Exit 0 does not universally mean PASS: a run can complete with WARN findings. Exit 1 means a finding reached BLOCK. Exit 2 covers usage/runtime failure and requested coverage failures such as --fail-on-coverage-gap or --require-analyzers. Read the report for the release decision and its evidence.
CI interpretation
ci.sh
set +e
fendix scan --code . --fail-on HIGH --fail-on-coverage-gap --output results.json
status=$?
# Always upload results.json when it exists.
exit "$status"Related documentation
Add Fendix to CI · Findings and release decisions · Coverage