pbakaus/impeccable · warning

[impeccable] The live server has no record of session

Error message

[impeccable] The live server has no record of session 

What it means

When the browser sends a checkpoint event, the live server can refuse with error 'unknown_session' if it has never journaled that session id. This happens when the browser carries localStorage state from another project or a wiped store (two apps sharing the same localhost port). abandonForeignSession clears the stale local state once and hands the surface back to the picker, because continuing would freeze the picker behind a session that can never complete.

Source

Thrown at skill/scripts/live-browser.js:7399

        abandonForeignSession(msg.id);
        return null;
      }
      return handleFailure(new Error(body.error || ('HTTP ' + res.status + ' ' + res.statusText)));
    }).catch(handleFailure);

    if (msg.type === 'generate' || msg.type === 'steer') {
      const creation = doSend();
      sessionCreationGate = creation.then(() => {}, () => {});
      return creation;
    }
    return sessionCreationGate.then(doSend);
  }

  let abandonedForeignSessionId = null;
  function abandonForeignSession(sessionId) {
    if (abandonedForeignSessionId === sessionId || sessionId !== currentSessionId) return;
    abandonedForeignSessionId = sessionId;
    console.warn('[impeccable] The live server has no record of session ' + sessionId + '; clearing stale local state.');
    markSessionHandled();
    cleanup({ instantChrome: true });
    showToast('A saved live session belonged to a different project, so it was cleared. Pick an element to start fresh.', 6000);
  }

  function checkpointPayload(reason) {
    return {
      type: 'checkpoint',
      id: currentSessionId,
      revision: sessionState.nextCheckpointRevision(),
      revisionDomain: 'browser',
      owner: browserOwner,
      phase: String(state || '').toLowerCase(),
      reason,
      pageUrl: location.pathname,
      expectedVariants,
      arrivedVariants,
      visibleVariant,

View on GitHub (pinned to 2bc2879276)

Solutions

  1. Nothing to fix manually — the script clears the stale state itself; pick an element to start a fresh session.
  2. Use different ports per project to avoid per-origin localStorage collisions.
  3. Clear site data (localStorage) for the origin if stale sessions keep appearing.
  4. Re-pick the element in the current project so the server journals a new session id.
Defensive patterns

Strategy: fallback

Validate before calling

const res = await sendCheckpoint(msg);
// server-side guard before adopting local state:
if (res?.body?.error === 'unknown_session') {
  // local state is stale/foreign: clear and re-pick
  markSessionHandled();
  cleanup({ instantChrome: true });
}

Prevention

When it happens

Trigger: A checkpoint POST to the live server returns {error:'unknown_session'} for msg.id === currentSessionId — i.e. a saved session resumed in a different project that happens to reuse the same localhost port, or after the server's session store was wiped/reset.

Common situations: Two projects developed on the same port (e.g. both localhost:5173); server restarted with a cleared session store; switching between branches/projects without clearing localStorage; resuming an old saved session after reinstalling the engine.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


AI-assisted analysis of pbakaus/impeccable@2bc2879276 (2026-09-08). Data as JSON: /api/errors/99b197bcf7561d20. Report an issue: GitHub.