A 'permission denied' or 403 error on GitHub usually means you are not signed in to the correct account, you are not listed as a collaborator on the repository, or the repository is private. Fix it by checking which account you are using, requesting collaborator access from the repository owner, or verifying the repository URL is correct.
Why GitHub Says Permission Denied
GitHub uses a permissions system to control who can view, edit, and manage each repository. When you see a 'permission denied,' '403 Forbidden,' or '404 Not Found' error, it means GitHub does not recognize you as someone allowed to perform that action.
The three most common causes are:
- **Wrong account.** You may be signed in to a personal account but need access from a work or team account. This is especially common if you have multiple GitHub accounts. - **Not a collaborator.** Private repositories (and some actions on public repos) require the owner to explicitly grant you access. Until they add you as a collaborator, you cannot push changes or view private content. - **Private repository with wrong URL.** GitHub shows a 404 page for private repositories you do not have access to — it does not reveal that the repo exists. This can look confusing because the URL might be correct but you still see 'Page not found.'
This is a common issue when working with AI-built projects. For example, when a Lovable project is exported to GitHub as a private repository, team members need to be added as collaborators before they can access it.
Prerequisites
- A GitHub account
- The URL or name of the repository you are trying to access
Step-by-step guide
Check which GitHub account you are signed in to
Check which GitHub account you are signed in to
Click your **profile picture** in the top-right corner of any GitHub page. A dropdown menu appears showing your username directly below the avatar. Verify this is the account that should have access to the repository. If you have multiple accounts (personal and work), you may need to sign out and sign in with the correct one. To sign out: click the profile picture → **Sign out**. Then sign in with the correct account at github.com/login.
Expected result: You confirm which account you are using and switch if necessary.
Verify the repository URL is correct
Verify the repository URL is correct
Double-check the URL in your browser's address bar. A GitHub repository URL follows the format: `github.com/owner-username/repository-name`. A single typo in either the username or repository name will show a 404 page. If someone shared the link with you, ask them to re-send it. You can also search for the repository: click the **search bar** at the top of GitHub, type the repository name, and press Enter.
Expected result: You have confirmed the URL is spelled correctly.
Request collaborator access from the repository owner
Request collaborator access from the repository owner
If the URL is correct and you are on the right account but still cannot access the repository, you need the owner to add you as a collaborator. Contact the repository owner (via email, Slack, or any communication channel) and ask them to: 1. Go to the repository on GitHub 2. Click the **Settings** tab 3. In the left sidebar, click **Collaborators** (under 'Access') 4. Click the green **Add people** button 5. Type your GitHub username or email and select your account 6. Click **Add to this repository** You will receive an email invitation. Open the email and click **Accept invitation**, or go to github.com/notifications to accept it there.
Expected result: The repository owner sends an invitation and you accept it, granting you access.
Check your invitation inbox on GitHub
Check your invitation inbox on GitHub
If the owner says they already sent an invitation, you may have missed the email. Go to **github.com/notifications** in your browser. Look for a repository invitation notification. You can also check **github.com** — a banner may appear at the top saying 'You have pending repository invitations.' Click **View invitation** and then **Accept**.
Expected result: You find and accept the pending invitation, resolving the permission issue.
Verify your access level
Verify your access level
After accepting the invitation, navigate to the repository. You should now be able to view the code. To check your permission level, click the **Settings** tab. If you can see Settings, you have Admin or Maintainer access. If Settings is not visible, you have Write or Read access, which is sufficient for most tasks. If you still see errors when trying to push changes through GitHub Desktop, make sure GitHub Desktop is signed in to the same account. Open GitHub Desktop, click **GitHub Desktop** in the menu bar (Mac) or **File** (Windows), then **Preferences** → **Accounts** to verify.
Expected result: You can view the repository, and push changes if you have Write access or above.
Complete working example
1# GitHub Permission Denied — Troubleshooting Checklist23## Step 1: Check your account4- [ ] Click profile picture → verify username5- [ ] Correct account for this repository?67## Step 2: Verify the URL8- [ ] Format: github.com/owner/repo-name9- [ ] No typos in owner or repo name1011## Step 3: Check for pending invitations12- [ ] Visit github.com/notifications13- [ ] Check email for invitation link14- [ ] Accept the invitation1516## Step 4: Contact the owner17- [ ] Ask them to add you via Settings → Collaborators18- [ ] Provide your GitHub username or email1920## Step 5: Verify GitHub Desktop21- [ ] Preferences → Accounts → correct account signed in22- [ ] Try cloning the repository againCommon mistakes when fixing Permission Denied Error on GitHub
Why it's a problem: Assuming a 404 error means the repository does not exist
How to avoid: GitHub shows 404 for private repositories you cannot access. Ask the owner to confirm the repository exists and to add you as a collaborator.
Why it's a problem: Being signed in to the wrong GitHub account
How to avoid: Check your profile picture and username. Sign out and sign in with the account that has access.
Why it's a problem: Not accepting the collaborator invitation
How to avoid: Invitations expire after 7 days. Check your email and github.com/notifications promptly.
Why it's a problem: Trying to push to a repository where you only have Read access
How to avoid: Ask the owner to upgrade your permission to Write access via Settings → Collaborators.
Best practices
- Use a single GitHub account for all your projects to avoid confusion with multiple sign-ins.
- When creating a private repository, immediately add all collaborators who need access.
- Accept collaboration invitations promptly — they expire after 7 days.
- If you manage a team, use GitHub Organizations to simplify permission management across multiple repositories.
- When exporting projects from AI tools like Lovable to GitHub, set up collaborator access before sharing the repository link.
- Bookmark your most-used repositories to avoid URL typos.
- If using GitHub Desktop, verify it is signed in to the correct account under Preferences → Accounts.
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I am getting a 'permission denied' error when trying to access a GitHub repository. I am signed in but see a 404 page. What are the possible causes and how do I fix this without using the terminal?
Frequently asked questions
Why does GitHub show 404 instead of 'permission denied' for private repositories?
This is a security feature. Showing 'permission denied' would confirm the repository exists. By showing 404, GitHub hides the existence of private repositories from unauthorized users.
How long does a collaborator invitation last?
GitHub collaborator invitations expire after 7 days. If it expires, the repository owner must send a new invitation from Settings → Collaborators.
Can I request access to a public repository?
Public repositories are viewable by everyone. You only need collaborator access to push changes directly. Alternatively, you can fork the repository and submit a pull request without special permissions.
What is the difference between Read, Write, and Admin access?
Read lets you view code and issues. Write lets you push code and manage issues. Admin gives full control including Settings, adding collaborators, and deleting the repository.
I get permission errors in GitHub Desktop but the website works fine. What is wrong?
GitHub Desktop may be signed in to a different account. Open Preferences → Accounts and verify you are signed in with the same account that has repository access.
Can RapidDev help set up proper access controls for a team project?
Yes. RapidDev can help configure GitHub Organizations, team permissions, branch protection rules, and collaborator access for projects of any size.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation