STEP-BY-STEP GUIDE

Fix GitHub Desktop Authentication failed or Bad credentials

What to do first

Classify GitHub Desktop authentication failures from logs, then check browser sign-in, remotes, permissions, and SSH keys. Separate Fetch from Push while retaining local work.

This is a general troubleshooting guide, not an announcement of a current outage.

Affected products and symptoms

Product
GitHub Desktop
Versions and conditions
GitHub Desktop for Windows and macOS
Error codes and identifiers
Bad credentialsempty tokenRepository not found

Symptoms

  • Push or clone authentication fails
  • Logs show Bad credentials or empty token

Causes and conditions

Reauthenticate in the browser and use logs to distinguish credential failure from repository permission.

Before you start

  • Before changes, record and preserve the day’s GitHub Desktop log, remote URL, and browser access result.
  • Change one item at a time and record the original symptom after each stage.

Precautions

  • Do not bulk-delete unrelated settings or data.
  • Exclude personal data and credentials; share only the necessary parts of the day’s GitHub Desktop log, remote URL, and browser access result.

Tools and official pages used in this guide

GitHub Desktop troubleshooting sequence: Classify the error; Sign out; Authenticate in the browser; Verify host and access; Use the log and remote URL to identify authentication type; Verify normal GitHub Desktop behavior and recurrence
Procedure overview created by FaultNote. Read the precautions and full instructions before changing settings. Read the full steps

Step-by-step instructions

  1. 01

    Classify the error

    #

    Open Help > Show Logs in Explorer/Finder and inspect the log for that date.

    Repository not found can mean access loss, rename, or deletion rather than damaged credentials.

    Bad credentials and empty token justify re-sign-in; repeating it cannot grant permission for Repository not found.

    Select the repository, open Repository > Repository settings > Remote and record the URL, then use Help > Show Logs in Explorer/Finder.

    Complete sign-out, browser authentication, authorization, and return to Desktop. Verify the browser user; another account can authenticate successfully without access to the needed private repository.

  2. 02

    Sign out

    #

    Use File > Options > Accounts on Windows or GitHub Desktop > Settings > Accounts on macOS.

    Uncommitted working-tree changes remain, but save work first.

    When the browser asks to return to Desktop, verify the legitimate github.com or Enterprise host.

    For Enterprise, verify the company server URL and account separately from GitHub.com. Follow organizational requirements and never embed or share passwords and tokens in remote URLs.

  3. 03

    Authenticate in the browser

    #

    Choose Sign Into and Continue With Browser, then finish GitHub sign-in and 2FA.

    GitHub Desktop does not support direct username/password authentication.

    For SAML SSO organizations, finish organization authorization in the browser; account login alone may not grant repository access.

    If Fetch works but Push fails, inspect write permissions and branch rules before clearing credentials. Keep unpushed commits and use an allowed contribution branch where required.

  4. 04

    Verify host and access

    #

    Confirm GitHub.com versus Enterprise and open the repository in the browser.

    An SSH remote needs a valid key or a change to HTTPS.

    Check Repository > Repository settings > Remote. Desktop HTTPS and SSH-form submodules use different authentication paths.

  5. 05

    Use the log and remote URL to identify authentication type

    #

    Open the log for the failure date through Help > Show Logs in Explorer. Distinguish Bad credentials, Repository not found, and Permission denied (publickey); a generic failure dialog does not identify stored credentials, permissions, or SSH keys.

    Check whether the repository remote uses HTTPS or SSH. Browser sign-in does not prove an SSH key works, and signing into Desktop again may leave an SSH problem unresolved.

    For Repository not found, test access in the browser with the same account. A rename, deletion, or permission change can explain the result, so verify the URL and owner before repeatedly replacing credentials.

  6. 06

    Verify normal GitHub Desktop behavior and recurrence

    #

    After browser authentication returns to Desktop, check the account and try Fetch origin. Fetch access does not prove write access; if only pushing fails, read the permission or branch-protection error.

    Remove tokens, private repository names, and personal paths before sharing logs. Reauthentication does not require deleting your local repository; retain unpushed commits and working files.

Check the result

  • fetch, push a small commit, and confirm Desktop does not prompt again after restart
  • Check adjacent basic functions for side effects from the change.

If the problem continues

  • ask the owner about Repository not found access, or follow organization key enrollment for SSH publickey errors
  • When continuing with a workaround, preserve original files or account data separately.

Scope of this guide

Troubleshooting guide — Classify GitHub Desktop authentication failures from logs, then check browser sign-in, remotes, permissions, and SSH keys. Separate Fetch from Push while retaining local work.

Frequently asked questions

Should I enter a PAT as a Desktop password?

Use Continue With Browser for normal Desktop authentication.

Will re-login fix Repository not found?

Not if access was removed or the repository was renamed; contact its owner.

Does signing in again remove local changes?

Reauthentication does not delete the repository. Check edits and unpushed commits, and avoid unrelated discard operations. Discard Changes or folder deletion is unnecessary.

The browser opens the repository, but Push fails.

Read and write permissions differ. Read branch-rule or organization errors, and distinguish HTTPS from SSH: browser sign-in does not validate SSH keys.

Official sources and dates

Source publication or resolution date: Not specified. Sources checked: 2026-10-13. The check date is not the date the problem first occurred. Interface labels can vary between versions and display languages.

Related troubleshooting guides

GitHub Desktop errors and troubleshooting →

Installation and license activation failures →

Related how-to guides and comparisons

← Search English guides