tinyhumansai/openhuman · error
[onboarding] Failed to persist onboarding tasks; continuing
Error message
[onboarding] Failed to persist onboarding tasks; continuing completion
What it means
Best-effort catch around setOnboardingTasks during onboarding completion: persisting the onboarding-task snapshot to the core failed (RPC error, core not reachable), but the flow deliberately logs and continues rather than blocking the user at the finish line. The log line marks this as intentional — completion proceeds even though the persisted localState snapshot may be missing/stale for this session.
Source
Thrown at app/src/pages/onboarding/OnboardingLayout.tsx:56
// stale snapshots stripping newer tools (issue #3096); this is
// defense-in-depth on the write path.
const existingEnabledTools = snapshot.localState.onboardingTasks?.enabledTools;
const enabledTools =
existingEnabledTools && existingEnabledTools.length > 0
? existingEnabledTools
: getEnabledRustToolNames(getDefaultEnabledTools());
await setOnboardingTasks({
accessibilityPermissionGranted:
snapshot.localState.onboardingTasks?.accessibilityPermissionGranted ?? false,
localModelConsentGiven: false,
localModelDownloadStarted: false,
enabledTools,
connectedSources: draft.connectedSources,
updatedAtMs: Date.now(),
});
} catch (e) {
console.warn('[onboarding] Failed to persist onboarding tasks; continuing completion', e);
}
try {
await setOnboardingCompletedFlag(true);
} catch (e) {
console.error('[onboarding] Failed to persist onboarding_completed', e);
throw e;
}
// Fire onboarding_complete analytics event before navigation.
trackEvent('onboarding_complete');
// Flag the Joyride walkthrough as pending so it auto-starts on the chat landing surface.
// Best-effort: localStorage failures must not block navigation.
try {
setWalkthroughPending();
console.debug('[onboarding:layout] walkthrough pending flag set — navigating to /chat');
} catch (e) {View on GitHub (pinned to 7491200858)
Solutions
- Verify the core is running (the setOnboardingTasks RPC target) and retry onboarding completion if a persisted state matters
- Check for stale-snapshot issues the defense-in-depth comment references (#3096) if tools appear missing later
- Usually ignorable — completion state on the backend flag is the authoritative record
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at app/src/pages/onboarding/OnboardingLayout.tsx:56 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/de3e69bf6d8c5c07.
Report an issue: GitHub.