Skip to Content
LaunchfastDocs

Repository access errors

For sellers using GitHub repository delivery. What each error your buyers see means, and how to fix it.

These apply when you've set up selling access to a GitHub repo. If you're a Launchfast buyer trying to get the kit's code, see Get the code.

Errors buyers see on the dashboard

"Repository access isn't configured."

Why: GITHUB_REPO or GITHUB_REPO_TOKEN isn't set where the app runs.

Fix: set both in Vercel and redeploy.

"That isn't a valid GitHub username."

Why: the text doesn't fit GitHub's username rules: letters, numbers and single hyphens, up to 39 characters, not starting or ending with a hyphen. Buyers sometimes enter an email or display name.

Fix (for the buyer): enter the username shown at github.com/<username>.

"No GitHub account named "…"."

Why: GitHub has no account with that name.

Fix (for the buyer): check the spelling.

"GitHub didn't accept the invitation. Please try again or contact support."

Why: GitHub refused the request. Vercel's Logs show the details as [repo-access] invite failed <status>: …:

StatusWhyFix
401The token expired or was revokedCreate a new token, update GITHUB_REPO_TOKEN, redeploy
403The token lacks Administration: Read and write, or an organization hasn't approved itEdit the token's permissions; approve it in the organization's Settings → Personal access tokens
404GITHUB_REPO is wrong, or the token can't see that repositoryUse owner/name exactly; include the repository in the token's Repository access
422GitHub rejected the user (for example, they blocked your organization)Ask the buyer to use another account

"Repository access comes with a paid plan."

Why: the signed-in user has no paid plan. Either they paid with another account, or the payment webhook hasn't arrived yet.

Fix: check /admin for the user's plan. If they paid and it's missing, see The plan doesn't unlock after paying.

Problems you see in logs

[repo-access] automatic invite for <user> failed

Why: after payment, the kit tried to invite the buyer's linked GitHub account and couldn't. The error follows the message.

Effect: not fatal. The buyer can still send the invite from the dashboard.

Looking up GitHub user <id> failed: 401

Why: the token expired. See the 401 row above.

Removing <username> from <repo> failed: <status>

Why: after a refund, or when a buyer switched usernames, the kit couldn't remove the old account. With 401 or 403, the token is the cause.

Effect: the webhook returns an error, so Dodo retries. Fix the token, and the next retry removes access. You can also remove the person by hand in the repository's Settings → Collaborators.

Buyer questions

"I didn't get the invitation email"

GitHub emails the address on the buyer's GitHub account, which may differ from the one they bought with. Pending invitations are also listed at https://github.com/<owner>/<repo>/invitations, visible to the invited account when signed in.

"My invitation expired"

GitHub invitations expire after 7 days. Entering the username again on the dashboard sends a fresh one.

"I want to use a different GitHub account"

Use Use a different GitHub account on the dashboard. The new account is invited and the old one removed.

On this page