Skip to content

Common Errors

Quick reference for common errors and their solutions.


Symptoms: Signing in with a PAT returns an invalid token error.

Causes:

  • Token was mistyped or contains extra whitespace
  • Token has been revoked in GitHub
  • Token has expired
  • Token type is not recognized

Solutions:

  1. Copy the token directly from GitHub — avoid retyping
  2. Check the token status at GitHub → Settings → Developer settings → Personal access tokens
  3. Generate a new token and try again

“Sign in with a personal access token” on sign-in

Section titled ““Sign in with a personal access token” on sign-in”

Symptoms: Signing in with a token is rejected with a message asking for a personal access token.

Causes: The token is an OAuth token (gho_, such as the output of gh auth token), a GitHub App user token (ghu_) or an installation token (ghs_, such as a GitHub Actions GITHUB_TOKEN). These are issued to an app rather than created by you, so token sign-in does not accept them.

Solutions:

  1. Create a fine-grained or classic personal access token at GitHub → Settings → Developer settings → Personal access tokens and sign in with that
  2. Or use Log in with GitHub if your installation has an OAuth app configured

“PAT login over non-local HTTP is disabled”

Section titled ““PAT login over non-local HTTP is disabled””

Symptoms: Signing in with a PAT is rejected even though the browser shows HTTPS.

Causes: Your reverse proxy terminates TLS and forwards plain HTTP to the container, so the backend only learns the original scheme from the X-Forwarded-Proto header. Either the proxy is not sending it, or the image predates the fix that stopped the container’s own nginx from overwriting it.

Solutions:

  1. Confirm your proxy forwards X-Forwarded-Proto: https — Caddy and Traefik do this automatically; a hand-written nginx proxy needs proxy_set_header X-Forwarded-Proto $scheme;
  2. Pull the latest image and restart
  3. See HTTPS Setup for per-proxy examples and a stop-gap override

“Log in with GitHub” button not appearing

Section titled ““Log in with GitHub” button not appearing”

Symptoms: The OAuth login button is missing from the login page.

Causes: GITHUB_CLIENT_ID environment variable is not set or the container was not restarted after adding it.

Solutions:

  1. Verify GITHUB_CLIENT_ID is set in your container environment
  2. Restart the container to apply the new environment variable
  3. Check container logs for OAuth configuration errors

Symptoms: After authorizing the GitHub OAuth App, GitHub returns a redirect URI mismatch error.

Causes: The VITE_BACKEND_URL environment variable does not match the callback URL registered in your GitHub OAuth App.

Solutions:

  1. Check the Authorization callback URL in your GitHub OAuth App settings
  2. Verify the VITE_BACKEND_URL environment variable matches exactly (including protocol and port)
  3. Update the OAuth App or environment variable so they match

Symptoms: Repositories are not visible or return 404 errors.

Causes:

  • Fine-grained PAT was created with limited repository access
  • The GitHub token does not have access to the repository
  • The repository is in an organization with restricted token access

Solutions:

  1. Check which repositories are authorized on the fine-grained PAT
  2. Verify the signed-in GitHub account has access to the repository
  3. For organization repositories, check if the organization has blocked token access

“Insufficient permissions” on workflow operations

Section titled ““Insufficient permissions” on workflow operations”

Symptoms: Creating, updating, or deleting workflows fails with a permission error.

Causes: The token is missing required permissions.

Solutions:

  1. For fine-grained PATs, verify Contents: Read and write and Actions: Read and write are set
  2. For classic PATs, verify the repo and workflow scopes are granted
  3. Generate a new token with the correct permissions

Symptoms: An action on a project you don’t own fails with More than one project is named ‘X’. Open it from the projects list, or rename one so they can be told apart.

Causes: Project names are unique per owner, not across the workspace. A project page tells ActionsManager which project it shows, so actions taken from the page act on that project even when another owner’s project has the same name. A request that only names the project — a bookmarked or shared project link, or a direct API call — can’t say which one it means when two owners use that name and you own neither (or hold a grant on both). ActionsManager refuses rather than guess, because a guess could act on the other project.

The owners of each project are not affected: a name always resolves to the project they own.

Solutions:

  1. Open the project from the projects list rather than a bookmarked link.
  2. Or rename one of the projects from the project sidebar (see Renaming a Project), so links and direct calls work too. Anyone with editor access to that project can rename it, and its owner and workspace admins always can.

Symptoms: Starting a PR campaign completes without creating any pull requests.

Causes:

  • No repositories in the project are configured
  • The workflow is already up to date in all repositories
  • The GitHub token lacks Pull requests: Read and write permission

Solutions:

  1. Verify the project has repositories added
  2. Check drift status — if all repositories are in sync, no PRs are needed
  3. Verify the PAT has pull request permissions

“Branch already exists” when creating campaign PRs

Section titled ““Branch already exists” when creating campaign PRs”

Symptoms: PR creation fails because the branch already exists.

Causes: A previous campaign created a branch that was never merged or deleted.

Solutions:

  1. Check the repository on GitHub for open or abandoned campaign branches
  2. Delete the old branch and retry the campaign
  3. Or merge/close the existing PR first