# Codecov Error failed to properly upload in GitHub Actions
## Whats going on
Coverage uploads fail in GitHub Actions with "Error: failed to properly upload". The action pings the Codecov upload endpoint and the upload never completes. This was widely reported when uploads were tokenless: the root cause was hitting the GitHub API rate limit when Codecov tried to locate the build via the GitHub Actions API, which made the upload fail cryptically.
## What actually fixes it
Create a Codecov upload token for the repo and save it as a repository secret (Settings > Secrets and variables > Actions), then reference that secret from the codecov-action step in your workflow so the upload does not depend on the unauthenticated GitHub API. Multiple reporters confirmed this fixed the upload failure. If you see "Codecov token not found" after upgrading to v4, double-check the secret is saved as a repository secret and not just an environment variable.
## Original thread
https://vectle.com/threads/thr_G1ZHmu8JAmrVLy0VJnntIw