Error map
protected branch remote: error: GH006: Protected branch update failed / pre-receive hook declined
Git · layer 7, Build & delivery
Centre: this error. First ring: errors it is linked with (9). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.
Directly related (9)
denied: requested access to the resource is denied (docker push)
You’re logged in, but not allowed to push to that repository — usually the image isn’t tagged with your own username/organisation.
remote: Permission to owner/repo.git denied to github-actions[bot]. fatal: unable to access … The requested URL returned error: 403
A GitHub Actions workflow tried to push but the GITHUB_TOKEN doesn’t have write permission.
Git: ! [rejected] … (fetch first) — error: failed to push some refs
The remote branch has commits you don’t have locally, so Git refuses to overwrite them. Pull (merge or rebase) first, then push.
! [remote rejected] main -> main (shallow update not allowed)
You pushed from a shallow clone to a remote that doesn’t accept shallow history.
! [remote rejected] main -> main (branch is currently checked out)
You pushed to a non-bare repository whose working tree has that branch checked out.
fatal: The current branch x has no upstream branch.
The local branch isn’t linked to a remote branch yet, so a bare git push doesn’t know where to go.
error: src refspec main does not match any
You pushed a branch name that doesn’t exist locally — usually no commits yet, or the branch is called master not main.
error: RPC failed; HTTP 400 curl 22 / curl 92 HTTP/2 stream was not closed cleanly — the remote end hung up unexpectedly
A large HTTPS push/clone broke mid-transfer — size limits, proxies or flaky HTTP/2.
remote: error: GH001: Large files detected. File x is 120 MB; this exceeds GitHub's file size limit of 100.00 MB
GitHub rejected the push because a file over 100 MB is in your commits — even if you deleted it later.
Two steps away (24)
Azure AD (Entra ID): AADSTS700016 Application not found in the directory
The client ID in your sign-in request doesn’t exist in the tenant you’re authenticating against.
HTTP 401 Unauthorized
The request has no valid authentication credentials — you need to log in or send a valid token.
JWT Expired / Invalid Token
The JSON Web Token sent with the request is expired, malformed or signed with a different key, so the API rejects it (usually wit…
HTTP 403 Forbidden
The server understood the request but refuses to authorize it — you (or the server process) are not allowed to access this resour…
! [remote rejected] … (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/x.yml` without `workflow` scope)
Your token can’t modify GitHub Actions workflow files without the workflow scope.
npm ERR! `npm ci` can only install packages when your package.json and package-lock.json are in sync
package-lock.json doesn’t match package.json, so npm ci refuses to install.
Git: CONFLICT (content): Merge conflict in file — Automatic merge failed
Both branches changed the same lines; Git needs you to choose the final content before completing the merge/rebase.
Git: Permission denied (publickey). fatal: Could not read from remote repository.
SSH authentication to GitHub/GitLab/Bitbucket failed — no key, wrong key, or the key isn’t added to your account.
Git: fatal: refusing to merge unrelated histories
The two branches have no common ancestor — typically a local repo and a remote that were both initialized separately.
CloudFormation: No updates are to be performed
You ran an update/deploy with a template and parameters identical to what’s deployed, so there’s nothing to change.
the input device is not a TTY
docker run/exec was called with -t (allocate a terminal) in a context with no terminal — CI, cron, a pipe or a script.
AADSTS70021: No matching federated identity record found for presented assertion (GitHub Actions / workload identity)
The OIDC token from GitHub Actions/Kubernetes/another IdP doesn’t match any federated credential on the app — issuer, subject or…
error: remote origin already exists.
A remote named origin is already configured.
error: cannot lock ref 'refs/remotes/origin/x': is at … but expected … / unable to update local ref
Git couldn’t update a reference — stale remote-tracking refs, case-only branch name clashes, or a leftover lock file.
fatal: 'origin' does not appear to be a git repository
No remote named origin is configured (or it points nowhere valid).
You are in 'detached HEAD' state.
HEAD points at a commit instead of a branch, so new commits won’t belong to any branch.
error: pathspec 'x' did not match any file(s) known to git
Git couldn’t find the file or branch name you referenced.
fatal: couldn't find remote ref main
The branch you tried to pull/fetch doesn’t exist on the remote.
fatal: a branch named 'x' already exists
You tried to create a branch whose name is already taken locally.
fatal: Not a valid object name: 'main'.
The branch or commit doesn’t exist yet — typically in a new repo before the first commit.
fatal: unable to access 'https://github.com/…': Could not resolve host: github.com
DNS lookup for the Git host failed from this machine.
ssh: connect to host github.com port 22: Connection timed out
Outbound SSH on port 22 is blocked (firewall, corporate or public Wi-Fi).
kex_exchange_identification: Connection closed by remote host
The SSH connection was closed before the handshake — server overload, rate limiting, or a proxy/firewall interfering.
Error downloading object: x: Smudge error / This repository is over its data quota
Git LFS couldn’t download a large file — missing LFS install, auth problems, or the LFS bandwidth/storage quota is exhausted.
Map another error
Popular: 4035004000xC000007BTypeErrorCritical error404NullPointerException