Official matchers
38 matchers and 13 bundles. A matcher tells ci-doctor which lines of a failed job's log are the evidence. Pick one, read its fixtures, or try it on your own log.
| Name | Ecosystem | Role | Description | |
|---|---|---|---|---|
| all | bundle | – | Every official matcher, one bundle per ecosystem. | |
| any | bundle | – | Language-agnostic matchers: generic fatal errors, OOM kills and build banners. | |
| bazel | anybuild | wrapper | Bazel reporting that an action or target failed. A wrapper - the compiler or test output it relays is the cause. | |
| build_failure_banner | jvmbuild | wrapper | The `BUILD FAILURE` / `FAILURE: Build failed` banner Maven and Gradle print once the build gave up. | |
| bun | jstestdeps | tool | A failed `bun test` (the crossed-out test and its assertion), or a `bun install` that found no matching version. | |
| bundler | rubydeps | tool | Bundler failing to resolve - a missing gem, or a version conflict it prints the tree for. | |
| c | bundle | – | C and C++ compile and link errors. | |
| cc_cpp | cbuild | tool | C/C++ builds - CMake configure errors and linker `undefined reference` / `collect2` failures. | |
| composer | phpdeps | tool | Composer's resolver refusing the requirements, with the explanation it prints underneath. | |
| container | bundle | – | Container image build failures. | |
| cypress | jse2e | tool | A `CypressError` or a retry timeout, with the command log leading up to it. | |
| docker_build | containerbuild | wrapper | BuildKit giving up - `failed to solve` / `executor failed running` - around the Dockerfile step that failed. A wrapper: the `RUN` step's own output is the cause. | |
| dotnet | bundle | – | .NET build errors and test failures. | |
| dotnet_build | dotnetbuild | tool | MSBuild, Roslyn and NuGet error codes - `error CS0103`, `error NU1101`, `error MSB3073`. | |
| dotnet_test | dotnettest | tool | `dotnet test`: xunit/nunit `[FAIL]` markers and the `Failed!` summary line. | |
| eslint | jslint | tool | ESLint's `line:col error rule-name` entries and its `N problems` summary footer. | |
| generic_error | any | fallback | A line starting `ERROR` or `FATAL` from a tool with no pack of its own - the weakest signal; read it in context. | |
| go | bundle | – | Go test failures and panics. | |
| go_panic | goruntime | tool | A Go `panic:` or runtime `fatal error:` with the goroutine dump beneath it. | |
| go_test | gotest | tool | `go test`'s per-test `--- FAIL` marker, plus the assertion output printed under it. | |
| gradle | jvmbuild | wrapper | Gradle's `* What went wrong:` block, stopping before the `* Try:` boilerplate advice. A wrapper - it names the failed task, the compiler output above it is the cause. | |
| iac | bundle | – | Infrastructure-as-code apply and plan errors. | |
| jest | jstest | tool | A jest test failure - the bullet header names the test, and the diff below it shows expected against received. | |
| js | bundle | – | JavaScript and TypeScript build, test, package-manager and runtime failures. | |
| js_script_exit | js | wrapper | A JS package manager announcing that a lifecycle script exited non-zero - pnpm's `ELIFECYCLE`, bun's `error: script "x" exited with code N`. | |
| jvm | bundle | – | JVM build failures: Maven and Gradle. | |
| make | anybuild | wrapper | `make: ***` - make reporting that a recipe it ran failed. The recipe's own output above it is the cause. | |
| maven_gradle | jvmbuild | tool | Maven's `[ERROR]` lines - the compiler and test diagnostics Maven relays. | |
| minitest | rubytest | tool | Minitest's numbered `1) Failure:` entries and the assertion beneath each one. | |
| node_runtime | jsruntime | tool | An uncaught Node error. The message above the stack is the cause; an ESM/CJS resolution error means a missing or mis-declared module. | |
| npm | jsdeps | wrapper | `npm ERR!` lines. A wrapper: npm reports the failure of the script it ran, never the cause. | |
| oom | anyinfra | tool | The job being killed - exit code 137, `Killed`, `Out of memory`. Nothing else in the log explains a SIGKILL. | |
| php | bundle | – | PHP test failures, fatal errors and Composer conflicts. | |
| php_fatal | phpruntime | tool | A PHP fatal or parse error and the stack trace after it. | |
| phpunit | phptest | tool | PHPUnit's `There were N failures` block through to its `FAILURES`/`ERRORS`/`OK` footer. | |
| playwright | jse2e | tool | A Playwright test failure - the `1) suite > test` header names the test; its trace and diff follow. | |
| pnpm | jsdeps | tool | pnpm's `ERR_PNPM_*` codes - the resolver or lockfile refusing, which is the cause itself. | |
| pytest | pythontest | tool | pytest's `=== FAILURES ===` block, from the first failing test through to the short summary. | |
| python | bundle | – | Python test, lint and runtime failures. | |
| python_lint | pythonlint | tool | A `file.py:12: error` diagnostic from mypy, ruff, flake8 or pylint. | |
| python_traceback | pythonruntime | tool | An uncaught Python exception. The exception type and message are on the traceback's last line; the frames above show where it was raised. | |
| rspec | rubytest | tool | RSpec's `Failures:` block through to the `N examples, N failures` tally. | |
| ruby | bundle | – | Ruby test failures, exceptions and Bundler errors. | |
| ruby_exception | rubyruntime | tool | An unhandled Ruby exception - a backtrace frame naming the error class. | |
| rust | bundle | – | Rust compile errors, test failures and panics. | |
| rust_compile | rustbuild | tool | rustc refusing to compile (`error[E0308]`). The first error is usually the cause; later ones often follow from it. | |
| rust_panic | rustruntime | tool | A Rust panic, with the message and the frames that follow it. | |
| rust_test | rusttest | tool | `cargo test`'s `failures:` block through to the `test result:` line. | |
| terraform | iac | tool | Terraform's boxed `Error:` and the `on main.tf line 12` it points at. | |
| tsc | jsbuild | tool | A TypeScript compile error (`error TS2345:`) with the source excerpt around it. | |
| yarn | jsdeps | tool | Yarn Classic's `error <Capital>` lines and Berry's `YN0000:` diagnostic codes. |
Nothing matches.