earendil-works/pi · error · SessionError

storage

storage

Error message

Missing sequence row for session ${sessionId}

What it means

Error "Missing sequence row for session ${sessionId}" thrown in earendil-works/pi.

Source

Thrown at packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts:14

import { SessionError } from "@earendil-works/pi-agent-core";
import { sql } from "../sql.ts";
import type { SqliteDatabase } from "../types.ts";

export function createSequence(db: SqliteDatabase, sessionId: string, nextSeq = 1) {
	sql`INSERT INTO session_sequences (session_id, next_seq) VALUES (${sessionId}, ${nextSeq})`.run(db);
}

export function getNextSequence(db: SqliteDatabase, sessionId: string) {
	const sequenceRow = sql`SELECT next_seq FROM session_sequences WHERE session_id = ${sessionId}`.get<{
		next_seq: number;
	}>(db);
	if (!sequenceRow) {
		throw new SessionError("storage", `Missing sequence row for session ${sessionId}`);
	}
	return sequenceRow.next_seq;
}

export function setNextSequence(db: SqliteDatabase, sessionId: string, nextSeq: number) {
	sql`UPDATE session_sequences SET next_seq = ${nextSeq} WHERE session_id = ${sessionId}`.run(db);
}

export function advanceSequence(db: SqliteDatabase, sessionId: string, seq: number) {
	setNextSequence(db, sessionId, seq + 1);
}

export function deleteSequence(db: SqliteDatabase, sessionId: string) {
	sql`DELETE FROM session_sequences WHERE session_id = ${sessionId}`.run(db);
}

View on GitHub (pinned to 4af9d21d3b)

Solutions

  1. The session's sequence row is missing; recreate the session record.

When it happens

Trigger: Thrown at packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts:14 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24). Data as JSON: /api/errors/e981598cb78335a3. Report an issue: GitHub.