-
Notifications
You must be signed in to change notification settings - Fork 237
Description
Describe the bug
The Github Action ran successfully, but the CodeCov Commit
(and Pulls
) shows a "Missing Head Report."
The pull requests are also not showing any CodeCov reports.
This results in Codecov Coverage and Test Analysis being unusable
ci.yml log full
debug - 2025-08-04 01:47:43,215 -- Translating `/home/runner/work/python-blueprint/python-blueprint/coverage/reports/coverage.xml` into `(?s:/home/runner/work/python\-blueprint/python\-blueprint/coverage/reports/coverage\.xml)\Z`
info - 2025-08-04 01:47:43,215 -- Found 1 coverage files to report
debug - 2025-08-04 01:47:43,216 -- Found 31 network files to report, (31 without filtering)
info - 2025-08-04 01:47:43,216 -- > coverage/reports/coverage.xml
debug - 2025-08-04 01:47:43,216 -- Selected uploader to use: <class 'codecov_cli.services.upload.upload_sender.UploadSender'>
debug - 2025-08-04 01:47:43,216 -- Sending upload request to Codecov
info - 2025-08-04 01:47:43,685 -- Your upload is now processing. When finished, results will be available at: https://app.codecov.io/github/onyx-nostalgia/python-blueprint/commit/c00ffd2d947b196d32402dbcfdae5486d916ecb7
debug - 2025-08-04 01:47:43,686 -- Upload request to Codecov complete. --- {"response": {"raw_upload_location": "https://storage.googleapis.com/codecov-production/shelter/github/Onyx-Nostalgia%3A%3A%3A%3Apython-blueprint/c00ffd2d947b196d32402dbcfdae5486d916ecb7/4c81a37c-d74f-4975-96b8-494cbe7aef07.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=GOOG1EJWQHUGIBILH4J7Q6ZUSCIFNEOLYSNDS7L3B4N5SIBQ2J4YLYE5CRFCD%2F20250804%2Fus%2Fs3%2Faws4_request&X-Amz-Date=20250804T014743Z&X-Amz-Expires=30&X-Amz-SignedHeaders=host&X-Amz-Signature=f7f23278f0f79f601f18c13a0e0a8df4145f53e88620b0bbc566073da52f8427", "url": "https://app.codecov.io/github/onyx-nostalgia/python-blueprint/commit/c00ffd2d947b196d32402dbcfdae5486d916ecb7"}}
debug - 2025-08-04 01:47:43,686 -- Sending upload to storage
info - 2025-08-04 01:47:43,781 -- Process Upload complete
debug - 2025-08-04 01:47:43,781 -- Upload result --- {"result": "RequestResult(error=None, warnings=[], status_code=200, text='')"}
ci.yml full
- name: Upload coverage to Codecov
uses: codecov/codecov-action@main
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
disable_search: true
directory: "coverage/reports/"
files: "coverage/reports/coverage.xml"
codecov.yml full
coverage:
status:
project: #add everything under here, more options at https://docs.codecov.com/docs/commit-status
default:
# basic
target: auto #default
threshold: 0%
base: auto
# Not ready to start using blocking status checks? Set them as informational!
# informational: true
# patch:
# default:
# informational: true
comment:
layout: " diff, flags, files"
behavior: default
require_changes: false # if true: only post the comment if coverage changes
require_base: false # [true :: must have a base report to post]
require_head: true # [true :: must have a head report to post]
hide_project_coverage: false # [true :: only show coverage on the git diff aka patch coverage]
pytest command full
s.run(
"pytest",
"--cov=fact",
"--cov-report=html",
"--cov-report=term",
"--cov-report=xml:coverage/reports/coverage.xml",
"--cov-fail-under=100",
"--junitxml=coverage/reports/junit.xml",
"-o",
"junit_family=legacy",
"tests",
*s.posargs,
)
8e000353-698a-4f8b-95f2-b90adce40640.txt The files I downloaded from the Coverage reports history page.

{
"report_fixes": {
"format": "legacy",
"value": {}
},
"network_files": [
".dockerignore",
".editorconfig",
".gitattributes",
".github/workflows/ci.yml",
".github/workflows/pages.yml",
".gitignore",
".python-version",
".vscode/tasks.json",
"Dockerfile",
"LICENSE",
"README.md",
"codecov.yml",
"docs/gen_ref_pages.py",
"docs/index.md",
"docs/static/images/logo.png",
"docs/static/images/nox_run_configuration.png",
"docs/static/images/preferences.png",
"docs/static/math-integral-box.png",
"docs/static/stylesheets/extra.css",
"mkdocs.yml",
"noxfile.py",
"pyproject.toml",
"src/fact/__init__.py",
"src/fact/cli.py",
"src/fact/lib.py",
"src/fact/py.typed",
"tests/__init__.py",
"tests/test_cli.py",
"tests/test_lib.py",
"uv.lock",
""
],
"coverage_files": [
{
"filename": "coverage/reports/coverage.xml",
"format": "base64+compressed",
"data": "eJy1VNtu2zAMfW6+QhMwYHuwabtpvBZOCuxlnxHIMlsLtSVDopvm7ycnvqRoUndA9iaSh4dXMXt8qyv2itYpo9c8DiPOHjeLTBqvE884mdIwjsKYM1I1OhJ149Hp3TJJk2h1m8b3nFVKowteRaWKzjYoDlR4ogqsIPQiZ7kVWpaT0+pENbqNyslPmrqp8E3Rfs0jvlncZN+CgP1BjR2kYPmeDQWEzf6BlUSNewAYlRZFQSUWRrpQGUANx/JYEAxsv4XzTEaPzlbswmdFZZu3Dq00mlBT6FPxtDlaaq2AHeZQC0dooaSOHXx7x7BBtAwLKvogzrRWovPP4b2B0tQIttW+ENgZ+wLNnkqjg7xqsbFK0wdFBr2vZ4SJMmuEfPEhj/S9wLSofQOdleGTkHR+Gp902TPJSjh3ZB2knnW7VVrRdusbztmTqnAMBl0weGd/T/15HsdYN1mNvvLCwSAftquXMjikciYtWalLGQ2mqyXTC0eJ6bb2a7Hmt5yVilznDecRd7OI1Szi1ywijuYh87nGy3lIOgtJ4gnSt3jNybbYTUMXivzJCYZv06UefWc/Ekh+XiRMPsbM4GQqlzekUvmlDRlM/3lD4itsyGnTr9LR+AsbdX/tKc6v6D8Nun/3VxD6M3g4ldN9zMb7vFn8BRlHDJE=",
"labels": ""
}
],
"metadata": {}
}
To Reproduce
I've adjusted various settings, starting from:
- Normal Mode:
- In pytest, I set
--cov-report=xml
. - I tried it both with and without the
codecov.yml
file. - In
ci.yml
, no values were set.
- In pytest, I set
- Placing the report in
coverage/reports/
:- In pytest, I specified
--cov-report=xml:coverage/reports/coverage.xml
. - In
ci.yml
, I setdisable_search
,directory
(coverage/reports/
), andfiles
(coverage/reports/coverage.xml
).
- In pytest, I specified
- Using it with
codecov/test-results-action@v1
. - I tried generating a new token.
Expected behavior
- The coverage report displays the graph correctly.
- The code tree / file list can be displayed correctly
- Test Analysis is working.
Regression
I've only ever had it work once, on my first test when I uploaded the CI.yml file to the main branch. Initially, I got an error on the CodeCov commit saying it couldn't upload. I fixed that by adding --cov-report=xml to pytest, and it finally worked... But after I made more changes to the CodeCov settings, it stopped working again... I even tried reverting to the file that previously worked, but it still doesn't work.
Screenshots
- CodeCov Commits:

- CodeCov Pulls:

- CodeCov Coverage:

- CodeCov Test Analysis:

Product Area
- coverage
- test analytics
Versions
- OS: ubuntu@v24
- Git Host: GitHub
- CI/CD: GitHub Actions
- Uploader: codecov-action@main, codecov-action@v5
Commit and CI link
-
CodeCov Browser:
- CodeCov Commits: https://app.codecov.io/github/Onyx-Nostalgia/python-blueprint/commit/c00ffd2d947b196d32402dbcfdae5486d916ecb7
- CodeCov Pulls: https://app.codecov.io/github/Onyx-Nostalgia/python-blueprint/pull/2
- CodeCov Coverage: https://app.codecov.io/github/Onyx-Nostalgia/python-blueprint/tree/main
- CodeCov Test Analysis: https://app.codecov.io/github/Onyx-Nostalgia/python-blueprint/tests/main
- The files I downloaded from the Coverage reports history page: https://github.com/user-attachments/files/21570490/8e000353-698a-4f8b-95f2-b90adce40640.txt">8e000353-698a-4f8b-95f2-b90adce40640.txt
-
Github ACtion CI.yml
-
etc
Additional context
I've seen some people encounter problems with forked repositories, and I want to clarify that my repository is a fork, but I haven't submitted any PRs to the original repo. I'm working on my own main and feature branches in my git repo.
Initially, I thought the issue was with an incorrect setting in my codecov.yml
(the starting point of Codecov not displaying any results). So I deleted codecov.yml, but it still didn't display anything. I then thought I might need to reset codecov.yml
to its default values, but that also didn't work.