Skip to content

[BUG] Missing Head Report during commitΒ #1852

@Onyx-Nostalgia

Description

@Onyx-Nostalgia

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. Image
{
    "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.
  • Placing the report in coverage/reports/:
    • In pytest, I specified --cov-report=xml:coverage/reports/coverage.xml.
    • In ci.yml, I set disable_search, directory(coverage/reports/), and files (coverage/reports/coverage.xml).
  • 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:
Image
  • CodeCov Pulls:
Image
  • CodeCov Coverage:
Image
  • CodeCov Test Analysis:
Image

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

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.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions