GitHub Actions "Runner registration failed: 404" (wrong URL or token)
A 404 during registration means the URL/token pair did not resolve a valid registration target - wrong owner/repo, wrong scope, or an expired/incorrect registration token.
What this error means
config.sh fails with a 404 when registering a self-hosted runner.
github-actions
Error: Runner registration failed.
Http response code: NotFound from 'POST https://api.github.com/actions/runner-registration'
Response status code does not indicate success: 404 (Not Found).Common causes
Wrong --url
The URL points at a repo/org that does not exist or that you lack access to.
Invalid or expired token
Registration tokens are short-lived; a stale or wrong-scope token returns 404/401.
How to fix it
Use the correct URL and a fresh token
- Generate a new registration token from Settings > Actions > Runners > New self-hosted runner.
- Pass the exact --url shown there (repo vs org scope matters).
- Re-run config.sh.
How to prevent it
- Always copy the URL and token from the Add runner page for the correct scope.
- Generate a fresh token per registration; they expire quickly.
Related guides
GitHub Actions "A runner with the same name already exists"Fix self-hosted runner registration failing because a runner with the same name is already registered.
GitHub Actions Self-Hosted Runner Registration Failed (config.sh)Fix self-hosted runner registration failures with config.sh - an expired registration token, a wrong URL/scop…
GitHub Actions "HttpError: Bad credentials" (401) Calling the APIFix GitHub Actions "HttpError: Bad credentials" - an expired, malformed, or wrong token passed to the GitHub…