tinyhumansai/openhuman · error

[onboarding:api-keys] oauth complete failed

Error message

[onboarding:api-keys] oauth complete failed

What it means

Completing the OpenAI OAuth flow failed during onboarding: the inference_openai_oauth_complete RPC rejected for the pasted callback URL (params.callback_url). The step sets a visible error; oauthAwaitingCallback stays true and the callback URL is kept so the user can retry or correct the paste. Typical causes: malformed/truncated callback URL, code already redeemed, or provider/client-id mismatch core-side.

Source

Thrown at app/src/pages/onboarding/steps/ApiKeysStep.tsx:100

  const handleOpenAiOAuthComplete = async () => {
    const callback = oauthCallbackUrl.trim();
    if (!callback) {
      setError(t('onboarding.apiKeys.oauthPasteRedirect'));
      return;
    }
    setOauthBusy(true);
    setError(null);
    try {
      await callCoreRpc({
        method: 'openhuman.inference_openai_oauth_complete',
        params: { callback_url: callback },
      });
      setOauthCallbackUrl('');
      setOauthAwaitingCallback(false);
      setOauthConnected(true);
    } catch (err) {
      console.warn('[onboarding:api-keys] oauth complete failed', err);
      setError(t('onboarding.apiKeys.oauthCompleteFailed'));
    } finally {
      setOauthBusy(false);
    }
  };

  const handleSave = async () => {
    const trimmedOpenai = openai.trim();
    const trimmedAnthropic = anthropic.trim();
    if (!trimmedOpenai && !trimmedAnthropic && !oauthConnected) {
      onSkip();
      return;
    }

    setSaving(true);
    setError(null);
    try {
      if (trimmedOpenai) {

View on GitHub (pinned to 7491200858)

Solutions

  1. Re-copy the full redirect URL from the browser address bar — truncation is the most common cause
  2. Check the step's error message for the core's rejection reason (invalid code, expired state)
  3. Retry submit with the corrected URL; a code can be single-use, so re-run 'Connect' to start a fresh flow if it was already redeemed
  4. Fall back to pasting an API key if OAuth repeatedly fails
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at app/src/pages/onboarding/steps/ApiKeysStep.tsx:100 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/8840b5450c05e9b1. Report an issue: GitHub.