Error map

protected branch remote: error: GH006: Protected branch update failed / pre-receive hook declined

Git · layer 7, Build & delivery

Open the full error page →

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.

protected branch — remote: error: GH006: Protected branch update failed / pre-receive hook declined (Git)protected b…denied — denied: requested access to the resource is denied (docker push) (Docker)deniedgithub-actions[bot] 403 — remote: Permission to owner/repo.git denied to github-actions[bot]. fatal: unable to access … The requested URL returned error: 403 (Git)github-actions[bot]…non-fast-forward — Git: ! [rejected] … (fetch first) — error: failed to push some refs (Git)non-fast-forwardshallow update not allowed — ! [remote rejected] main -> main (shallow update not allowed) (Git)shallow update not …non-bare push — ! [remote rejected] main -> main (branch is currently checked out) (Git)non-bare pushno upstream branch — fatal: The current branch x has no upstream branch. (Git)no upstream branchsrc refspec — error: src refspec main does not match any (Git)src refspecRPC failed — error: RPC failed; HTTP 400 curl 22 / curl 92 HTTP/2 stream was not closed cleanly — the remote end hung up unexpectedly (Git)RPC failedGH001 large files — remote: error: GH001: Large files detected. File x is 120 MB; this exceeds GitHub's file size limit of 100.00 MB (Git)GH001 large filesAADSTS700016 — Azure AD (Entra ID): AADSTS700016 Application not found in the directory (Azure)AADSTS700016401 — HTTP 401 Unauthorized (HTTP)401TokenExpiredError — JWT Expired / Invalid Token (Authentication)TokenExpiredError403 — HTTP 403 Forbidden (HTTP)403workflow scope — ! [remote rejected] … (refusing to allow a Personal Access Token to create or update workflow `.github/workflows/x.yml` without `workflow` scope) (Git)workflow scopenpm ci out of sync — npm ERR! `npm ci` can only install packages when your package.json and package-lock.json are in sync (npm)npm ci out of syncCONFLICT — Git: CONFLICT (content): Merge conflict in file — Automatic merge failed (Git)CONFLICTpublickey — Git: Permission denied (publickey). fatal: Could not read from remote repository. (Git)publickeyunrelated histories — Git: fatal: refusing to merge unrelated histories (Git)unrelated historiesNo updates are to be performed — CloudFormation: No updates are to be performed (AWS)No updates are to b…the input device is not a TTY — the input device is not a TTY (Docker)the input device is…AADSTS70021 — AADSTS70021: No matching federated identity record found for presented assertion (GitHub Actions / workload identity) (Azure)AADSTS70021remote origin exists — error: remote origin already exists. (Git)remote origin existscannot lock ref — error: cannot lock ref 'refs/remotes/origin/x': is at … but expected … / unable to update local ref (Git)cannot lock reforigin not a repository — fatal: 'origin' does not appear to be a git repository (Git)origin not a reposi…detached HEAD — You are in 'detached HEAD' state. (Git)detached HEADpathspec did not match — error: pathspec 'x' did not match any file(s) known to git (Git)pathspec did not ma…couldn't find remote ref — fatal: couldn't find remote ref main (Git)couldn't find remot…branch exists — fatal: a branch named 'x' already exists (Git)branch existsnot a valid object name — fatal: Not a valid object name: 'main'. (Git)not a valid object …Could not resolve host — fatal: unable to access 'https://github.com/…': Could not resolve host: github.com (Git)Could not resolve h…port 22 timed out — ssh: connect to host github.com port 22: Connection timed out (Git)port 22 timed outkex_exchange_identification — kex_exchange_identification: Connection closed by remote host (Git)kex_exchange_identi…LFS smudge error — Error downloading object: x: Smudge error / This repository is over its data quota (Git)LFS smudge error

Directly related (9)

deniedDocker

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.

github-actions[bot] 403Git

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.

non-fast-forwardGit

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.

shallow update not allowedGit

! [remote rejected] main -> main (shallow update not allowed)

You pushed from a shallow clone to a remote that doesn’t accept shallow history.

non-bare pushGit

! [remote rejected] main -> main (branch is currently checked out)

You pushed to a non-bare repository whose working tree has that branch checked out.

no upstream branchGit

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.

src refspecGit

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.

RPC failedGit

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.

GH001 large filesGit

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)

AADSTS700016Azure

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.

401HTTP

HTTP 401 Unauthorized

The request has no valid authentication credentials — you need to log in or send a valid token.

TokenExpiredErrorAuthentication

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…

403HTTP

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…

workflow scopeGit

! [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 ci out of syncnpm

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.

CONFLICTGit

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.

publickeyGit

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.

unrelated historiesGit

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.

No updates are to be performedAWS

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 TTYDocker

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.

AADSTS70021Azure

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…

remote origin existsGit

error: remote origin already exists.

A remote named origin is already configured.

cannot lock refGit

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.

origin not a repositoryGit

fatal: 'origin' does not appear to be a git repository

No remote named origin is configured (or it points nowhere valid).

detached HEADGit

You are in 'detached HEAD' state.

HEAD points at a commit instead of a branch, so new commits won’t belong to any branch.

pathspec did not matchGit

error: pathspec 'x' did not match any file(s) known to git

Git couldn’t find the file or branch name you referenced.

couldn't find remote refGit

fatal: couldn't find remote ref main

The branch you tried to pull/fetch doesn’t exist on the remote.

branch existsGit

fatal: a branch named 'x' already exists

You tried to create a branch whose name is already taken locally.

not a valid object nameGit

fatal: Not a valid object name: 'main'.

The branch or commit doesn’t exist yet — typically in a new repo before the first commit.

Could not resolve hostGit

fatal: unable to access 'https://github.com/…': Could not resolve host: github.com

DNS lookup for the Git host failed from this machine.

port 22 timed outGit

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_identificationGit

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.

LFS smudge errorGit

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.