Codecov "unusable report" / processing error in CI
Codecov accepted the upload but failed to process it: the report was empty, in an unsupported format, or referenced file paths Codecov could not map onto the repository, so coverage shows as missing or unchanged.
What this error means
The upload succeeds but the Codecov processing step reports "some files were unusable" or "unusable reports", and the PR comment shows no coverage data.
Processing report...
Error: There was an error processing the uploaded report. Some files were unusable.Common causes
The report format is unsupported or empty
Uploading a binary .coverage file or an empty XML instead of Cobertura/lcov gives Codecov nothing parseable.
Report paths do not match the repository layout
Coverage was generated in a container or subpath whose file paths do not line up with the checked-out tree, so Codecov cannot attribute lines to files.
How to fix it
Upload a supported, non-empty format
- Generate XML (Cobertura) or lcov rather than a raw binary coverage database.
- Confirm the file has content (
wc -l coverage.xml) before uploading. - Point the action at that file with
files:.
coverage xml -o coverage.xml # convert .coverage to Cobertura XMLFix path prefixes so files map to the repo
Strip container or build prefixes so the report's paths match the repository tree Codecov sees.
# codecov.yml
fixes:
- "/app/::" # remove the container prefix from report pathsHow to prevent it
- Standardize on Cobertura XML or lcov, which Codecov parses reliably.
- Keep coverage paths relative to the repository root.
- Use codecov.yml path fixes when building inside containers.