earendil-works/pi · error · PiServerError
not_found
not_found
Error message
Session is not live: ${sessionId} What it means
Error "Session is not live: ${sessionId}" thrown in earendil-works/pi.
Source
Thrown at packages/server/src/sessions.ts:315
return snapshot;
}
private async attach(connection: ConnectionState, live: LiveSession): Promise<void> {
if (connection.disconnected || connection.stage !== "ready" || connection.connection.closed) {
await this.maybeDispose(live);
throw new PiServerError("invalid_request", "Connection closed while attaching to a session");
}
connection.sessionIds.add(live.id);
live.connections.add(connection);
}
private requireAttached(connection: ConnectionState, sessionId: string): LiveSession {
if (!connection.sessionIds.has(sessionId)) {
throw new PiServerError("invalid_request", `Connection is not attached to session ${sessionId}`);
}
const live = this.liveSessions.get(sessionId);
if (!live || live.terminal || live.disposing) {
throw new PiServerError("not_found", `Session is not live: ${sessionId}`);
}
return live;
}
private scheduleMaybeDispose(live: LiveSession): void {
void this.maybeDispose(live).catch((error: unknown) => this.options.reportError(error));
}
private async maybeDispose(live: LiveSession): Promise<void> {
if (
this.options.isClosing() ||
!live.ready ||
live.disposing ||
live.connections.size > 0 ||
live.operationCount > 0 ||
(!live.terminal && live.runtime.getPhase() !== "idle")
) {
return live.disposing;View on GitHub (pinned to 4af9d21d3b)
Solutions
- The session is closed; open or recreate the session before prompting.
When it happens
Trigger: Thrown at packages/server/src/sessions.ts:315 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/40f55298ab9deacf.
Report an issue: GitHub.