tinyhumansai/openhuman · error

[walkthrough] could not mark walkthrough complete in localSt

Error message

[walkthrough] could not mark walkthrough complete in localStorage

What it means

Best-effort catch in markWalkthroughComplete: the combined setItem(WALKTHROUGH_KEY) + removeItem(WALKTHROUGH_PENDING_KEY) threw (SecurityError/quota or storage disabled). The exception is deliberately not rethrown so the tour-end flow cannot be interrupted; the side effect is the walkthrough may replay next launch because the completed flag never persisted.

Source

Thrown at app/src/components/walkthrough/AppWalkthrough.tsx:64

  } 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);
  }
}

/**
 * Resets the walkthrough so it will play again on the current app shell.
 *
 * - Removes the completed flag from localStorage.
 * - Sets the pending flag so `isWalkthroughPending()` returns true.
 * - Dispatches a `CustomEvent('walkthrough:restart')` on `window` so any
 *   mounted `AppWalkthrough` instance can react and restart immediately.
 */
export function resetWalkthrough(): void {
  try {
    localStorage.removeItem(WALKTHROUGH_KEY);
    localStorage.setItem(WALKTHROUGH_PENDING_KEY, 'true');
    console.debug('[walkthrough] reset — pending flag set, completed flag removed');
  } catch (e) {
    console.warn('[walkthrough] could not reset walkthrough in localStorage', e);

View on GitHub (pinned to 7491200858)

Solutions

  1. No action required in the moment — the tour-end flow continues
  2. If the walkthrough keeps replaying, clear site storage or fix the quota issue so the flag can persist
  3. Verify the app is not running in a context where localStorage is disabled
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at app/src/components/walkthrough/AppWalkthrough.tsx:64 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/f626383d7ab4c69a. Report an issue: GitHub.