earendil-works/pi · error · SessionError
invalid_lane
invalid_lane
Error message
Lane not found: ${lane} What it means
Error "Lane not found: ${lane}" thrown in earendil-works/pi.
Source
Thrown at packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts:66
export function readLane(db: SqliteDatabase, sessionId: string, lane: string) {
return sql`SELECT session_id, lane, leaf_id, open_operation_id
FROM lanes
WHERE session_id = ${sessionId} AND lane = ${lane}`.get<LaneRow>(db);
}
export function readLaneHead(db: SqliteDatabase, sessionId: string, lane: string) {
const row = sql`SELECT
l.leaf_id,
(l.leaf_id IS NULL OR EXISTS (
SELECT 1 FROM entries AS e WHERE e.session_id = l.session_id AND e.id = l.leaf_id
)) AS leaf_exists
FROM lanes AS l
WHERE l.session_id = ${sessionId} AND l.lane = ${lane}`.get<{
leaf_id: string | null;
leaf_exists: number;
}>(db);
if (!row) throw new SessionError("invalid_lane", `Lane not found: ${lane}`);
if (row.leaf_exists === 0) throw new SessionError("storage", `Entry ${row.leaf_id} not found`);
return { leafId: row.leaf_id };
}
export function createLane(db: SqliteDatabase, sessionId: string, seq: number, lane: string, leafId: string | null) {
sql`INSERT INTO lanes (session_id, lane, leaf_id, open_operation_id)
VALUES (${sessionId}, ${lane}, ${leafId}, NULL)`.run(db);
appendLaneMove(db, sessionId, seq, lane, leafId);
}
export function moveLane(db: SqliteDatabase, sessionId: string, seq: number, lane: string, leafId: string | null) {
const result = sql`UPDATE lanes SET leaf_id = ${leafId} WHERE session_id = ${sessionId} AND lane = ${lane}`.run(db);
if (result.changes !== 1) throw new SessionError("invalid_lane", `Lane not found: ${lane}`);
appendLaneMove(db, sessionId, seq, lane, leafId);
}
export function setLaneLeaf(db: SqliteDatabase, sessionId: string, lane: string, leafId: string | null) {
const result = sql`UPDATE lanes SET leaf_id = ${leafId} WHERE session_id = ${sessionId} AND lane = ${lane}`.run(db);View on GitHub (pinned to 4af9d21d3b)
Solutions
- The lane does not exist; verify the lane name.
When it happens
Trigger: Thrown at packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts:66 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/a8c029c2440537cc.
Report an issue: GitHub.