{"record":{"id":"c5bbdb709578733e","repo":"tinyhumansai/openhuman","slug":"onboarding-context-save-profile-failed","errorCode":null,"errorMessage":"[onboarding:context] save_profile failed","messagePattern":"\\[onboarding:context\\] save_profile failed","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/pages/onboarding/steps/ContextGatheringStep.tsx","lineNumber":270,"sourceCode":"    }\n\n    // Stage 2 — Apify LinkedIn scrape (disabled: unreliable, skipped during\n    // profile build). PROFILE.md is built URL-only from stage 3.\n    setStage('linkedin-scrape', 'skipped', 0, 'apify_disabled');\n    const scrapedMarkdown = '';\n\n    // Stage 3 — summarize + persist via core LLM compressor\n    const profileStartedAt = stageNow();\n    setStage('build-profile', 'active');\n    try {\n      const body = scrapedMarkdown.trim()\n        ? scrapedMarkdown\n        : `# User Profile\\n\\nLinkedIn: ${profileUrl}\\n\\n_Scrape returned no data._`;\n      await saveProfile(body);\n      setStage('build-profile', 'done', durationMs(profileStartedAt));\n    } catch (e) {\n      const reason = errorReason(e);\n      console.warn('[onboarding:context] save_profile failed', {\n        durationMs: durationMs(profileStartedAt),\n        reason,\n      });\n      setStage('build-profile', 'error', durationMs(profileStartedAt), reason);\n      setHasError(true);\n    }\n\n    console.debug('[onboarding:context] pipeline finished', {\n      durationMs: durationMs(pipelineStartedAt),\n      result: stageStatusesRef.current['build-profile'] === 'error' ? 'profile_error' : 'completed',\n    });\n    setFinished(true);\n  }\n\n  const continueToChat = () => {\n    backgroundClickedRef.current = true;\n    console.debug('[onboarding:context] user continued before pipeline completion', {\n      finished,","sourceCodeStart":252,"sourceCodeEnd":288,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/app/src/pages/onboarding/steps/ContextGatheringStep.tsx#L252-L288","documentation":"The save_profile stage of onboarding context gathering failed: saveProfile rejected while persisting the built PROFILE.md body (URL-only, since the Apify scrape stage is disabled) to the core. The build-profile stage errors, so the user's profile document is not saved and downstream personalization that reads PROFILE.md runs without it.","triggerScenarios":"Thrown at app/src/pages/onboarding/steps/ContextGatheringStep.tsx:270 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the stage's logged error — auth/session expiry and core RPC transport are the usual causes","Verify the core process is healthy and retry context gathering; a fresh run rebuilds and re-saves the profile","If the write is rejected as invalid, inspect the generated PROFILE.md body size/content limits","Confirm the profile later via the memory/profile surface that saveProfile targets"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}