Skip to main content
The PKCE flow uses the local daemon on 127.0.0.1:7998 to receive the OAuth callback at /auth/callback/oauth. Most login failures fall into one of the categories below.
The provider’s authorization page returns:
Authsome listens on a single redirect URI:
Fix it at the provider:
1

Open your OAuth app settings

For GitHub: github.com/settings/developers. For other providers, find the equivalent OAuth app management page.
2

Edit the callback URL

Set Authorization callback URL (or the equivalent field) to http://127.0.0.1:7998/auth/callback/oauth. The full path matters, it must be /auth/callback/oauth.
3

Save and retry login

For services that support Dynamic Client Registration, the dcr_pkce flow registers a fresh OAuth client with the right redirect URI automatically. Check authsome inspect <provider> for supports_dcr: true.
Another process is bound to the daemon port. The CLI reuses an existing authsome daemon if one is already running; you only see this error when something else holds 7998. Find and stop it:
If a stale authsome daemon won’t release the port, pkill -f authsome then re-run any CLI command. See Daemon issues.
The terminal prints the authorization URL but no browser launches.You can also copy the URL printed in the terminal and open it manually on any device. As long as the redirect lands on http://127.0.0.1:7998/auth/callback/oauth on the same machine where authsome is waiting, the flow completes.
The browser shows the provider’s authorization page, you click Authorize, and nothing. The terminal is still waiting.
Authsome generates a random state parameter and rejects callbacks that don’t echo it back. Causes:
  • A stale tab from a previous login is hitting the callback. Close it and retry.
  • A man-in-the-middle is replaying old callback URLs. Investigate before retrying.
The provider’s token endpoint returns invalid_client.
The stored client credentials don’t match what the provider expects.
If you’ve recently rotated the OAuth app’s client secret, this is the expected flow.
The login completes but the agent gets 403 Insufficient scope on real API calls.
If the granted scopes don’t include what your agent needs:
The provider re-prompts for consent on the additional scopes.

What’s next

Token refresh

What to do when a refresh fails.

Headless device code

The right flow when you can’t run a browser locally.