tinyhumansai/openhuman · error

[onboarding:context] gmail stage failed

Error message

[onboarding:context] gmail stage failed

What it means

The Gmail stage of the onboarding context-gathering pipeline failed: findLinkedInUrlViaComposio threw while searching the user's connected Gmail for a LinkedIn URL. The catch marks the pipeline finished with a failure outcome (thegmail-search stage errors rather than skipping), so no profile build or later stages run for this onboarding attempt.

Source

Thrown at app/src/pages/onboarding/steps/ContextGatheringStep.tsx:237

    let profileUrl: string | null;
    try {
      profileUrl = await findLinkedInUrlViaComposio();
      if (profileUrl) {
        setStage('gmail-search', 'done', durationMs(gmailStartedAt));
      } else {
        setStage('gmail-search', 'skipped', durationMs(gmailStartedAt), 'no_linkedin_url');
        setStage('linkedin-scrape', 'skipped');
        setStage('build-profile', 'skipped');
        console.debug('[onboarding:context] pipeline finished', {
          durationMs: durationMs(pipelineStartedAt),
          result: 'no_profile_url',
        });
        setFinished(true);
        return;
      }
    } catch (e) {
      const reason = errorReason(e);
      console.warn('[onboarding:context] gmail stage failed', {
        durationMs: durationMs(gmailStartedAt),
        reason,
      });
      setStage('gmail-search', 'error', durationMs(gmailStartedAt), reason);
      setStage('linkedin-scrape', 'skipped');
      setStage('build-profile', 'skipped');
      console.debug('[onboarding:context] pipeline finished', {
        durationMs: durationMs(pipelineStartedAt),
        result: 'gmail_error',
        reason,
      });
      setHasError(true);
      setFinished(true);
      return;
    }

    // Stage 2 — Apify LinkedIn scrape (disabled: unreliable, skipped during
    // profile build). PROFILE.md is built URL-only from stage 3.

View on GitHub (pinned to 7491200858)

Solutions

  1. Check the stage's logged error for the Composio/Gmail failure reason (disconnected account, expired grant, API error)
  2. Reconnect Gmail via the integrations/connections settings and re-run context gathering
  3. If Composio is not configured, the step can be skipped — profile build is optional to onboarding
  4. Recurring failures: inspect core logs for the gmail search tool call
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/pages/onboarding/steps/ContextGatheringStep.tsx:237 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/9f9c365ab72696d1. Report an issue: GitHub.