Skip to content

Provider, model, and voice problems

Verify the provider, key scope, endpoint, and whether a custom provider expects different headers or compatibility settings. An API key uses the provider’s developer API and billing; it is not the same as signing in to a subscription. Saving a key replaces OAuth for that provider. Reauthenticate rather than placing a key in prompts or logs.

For a browser login, keep the Nerve prompt open until the callback completes. If the callback page fails, copy its final redirect URL from the browser address bar and paste it into the prompt. Pasted callback URLs must use a loopback host such as localhost or 127.0.0.1; do not replace that host with a LAN or public daemon address.

When the browser and daemon run on different machines—for example over SSH or in a container—localhost in the browser points to the browser’s machine. Prefer device-code login when the provider offers it. Otherwise, paste the failed final loopback redirect URL into the active prompt so Nerve can finish the exchange.

Only one active flow can use a given local callback address at a time. Cancel a stale conflicting flow before restarting. Authorization codes can be one-time and PKCE-bound. If a login is cancelled or fails during callback, TLS, proxy, or token exchange, start a fresh login; do not reuse a code or redirect URL. Follow install/proxy guidance for certificate or proxy failures.

Subscription OAuth and API-key billing are separate. Anthropic subscription authentication may use paid extra usage outside plan limits; this warning is expected, not an authentication error.

Authenticate the correct provider and clear/review model scope. Stale scoped entries show as unavailable and are ignored. Some provider catalogs expose only the first eight models. Define a compatible custom model if appropriate.

Thinking options are model metadata-dependent. A missing xhigh or max generally means the selected model does not declare it.

Voice requires OpenAI Codex/ChatGPT OAuth with account information, not an OpenAI API key. Confirm microphone permission, keep recordings under 8 minutes/25 MB, and use a supported browser audio type.

For a text-only primary model, open Settings → Tools → Image explanation, choose a currently available image-capable model, then enable explain_image. If the configured model or its credentials were removed, the setting is marked unavailable and the tool is hidden until reconfigured.

The tool is intentionally absent when disabled or when the primary model already supports image input. It accepts JPEG, PNG, GIF, and WebP files up to 20 MB, detected from file contents rather than the extension.

This is not provider auth. Install gh, ensure a GitHub remote exists, and run gh auth login.