tinyhumansai/openhuman · error

[onboarding:api-keys] save failed

Error message

[onboarding:api-keys] save failed

What it means

Saving the onboarding API keys step failed: setCloudProviderKey rejected for the openai and/or anthropic key being persisted. The step shows a generic save error and stays on the step (saving cleared in finally); no key that failed mid-sequence is retried, so a partial save is possible when the first key succeeds and the second fails.

Source

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

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

    setSaving(true);
    setError(null);
    try {
      if (trimmedOpenai) {
        await setCloudProviderKey('openai', trimmedOpenai);
      }
      if (trimmedAnthropic) {
        await setCloudProviderKey('anthropic', trimmedAnthropic);
      }
      onNext();
    } catch (err) {
      console.warn('[onboarding:api-keys] save failed', err);
      setError(t('onboarding.apiKeys.saveError'));
    } finally {
      setSaving(false);
    }
  };

  return (
    <div
      data-testid="onboarding-api-keys-step"
      className="rounded-2xl bg-surface p-10 shadow-soft animate-fade-up">
      <div className="text-center">
        <h1 className="text-2xl font-title text-content mb-2 leading-tight">
          {t('onboarding.apiKeys.title')}
        </h1>
        <p className="text-content-muted text-sm leading-relaxed">
          {t('onboarding.apiKeys.subtitle')}
        </p>
      </div>

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the console-warned error for whether one or both provider key writes failed
  2. Verify core/session health and retry Continue — successful keys are re-written harmlessly
  3. If a key is rejected as invalid, correct it in the step before retrying
  4. Skip is available if the user prefers to add keys later in settings
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/pages/onboarding/steps/ApiKeysStep.tsx:126 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/165d898dee36a92c. Report an issue: GitHub.