tinyhumansai/openhuman · error
[walkthrough] could not set pending flag in localStorage
Error message
[walkthrough] could not set pending flag in localStorage
What it means
Best-effort catch in setWalkthroughPending: localStorage.setItem(WALKTHROUGH_PENDING_KEY) threw — typically SecurityError in blocked/embedded contexts or QuotaExceededError with a full store. Per the documented contract the error is logged and swallowed so onboarding navigation to /chat always proceeds; the only cost is that the walkthrough may not auto-start on landing.
Source
Thrown at app/src/components/walkthrough/AppWalkthrough.tsx:47
console.warn('[walkthrough] localStorage unavailable — treating as not pending', e);
return false;
}
}
/**
* Flags the walkthrough as pending. Called by OnboardingLayout when the user
* completes the wizard and is about to navigate to /chat.
*
* Best-effort: if localStorage is unavailable (SecurityError / quota) the
* error is logged and the call is silently swallowed so navigation always
* proceeds.
*/
export function setWalkthroughPending(): void {
try {
localStorage.setItem(WALKTHROUGH_PENDING_KEY, 'true');
console.debug('[walkthrough] pending flag set');
} catch (e) {
console.warn('[walkthrough] could not set pending flag in localStorage', e);
}
}
/**
* Marks the walkthrough as completed (or skipped). Once set, the walkthrough
* will not show again.
*
* Wrapped in try/catch to prevent SecurityError/quota exceptions from
* interrupting the tour-end flow.
*/
export function markWalkthroughComplete(): void {
try {
localStorage.setItem(WALKTHROUGH_KEY, 'true');
localStorage.removeItem(WALKTHROUGH_PENDING_KEY);
console.debug('[walkthrough] marked as complete');
} catch (e) {
console.warn('[walkthrough] could not mark walkthrough complete in localStorage', e);
}View on GitHub (pinned to 7491200858)
Solutions
- No user-facing action needed — navigation proceeds regardless
- If the walkthrough should play, clear storage or unblock localStorage for the app origin
- Check for storage quota exhaustion from other keys and prune them
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at app/src/components/walkthrough/AppWalkthrough.tsx:47 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/0f87b3a03f028f5d.
Report an issue: GitHub.