earendil-works/pi · error · PiDisconnectedError
Pi client is disconnected
Error message
Pi client is disconnected
What it means
Error "Pi client is disconnected" thrown in earendil-works/pi.
Source
Thrown at packages/client/src/connection.ts:103
if (this.#isCurrent(id)) this.#failAndClose(toDisconnectedError(error));
},
} satisfies ByteTransportHandlers;
void this.#openTransport(id, handlers);
return handshake.promise;
}
disconnect(reason: string | Error = "Client disconnected"): void {
if (this.#lifecycle.state === "disconnected") return;
this.#failAndClose(typeof reason === "string" ? new PiDisconnectedError(reason) : reason);
}
fail(error: Error): void {
this.#failAndClose(error);
}
send(frame: Uint8Array): void {
const lifecycle = this.#lifecycle;
if (lifecycle.state !== "connected") throw new PiDisconnectedError();
let sending: Promise<void>;
try {
sending = lifecycle.transport.send(frame);
} catch (error) {
this.#failAndClose(toDisconnectedError(error));
return;
}
void sending.catch((error: unknown) => {
const current = this.#lifecycle;
if (current.state !== "disconnected" && current.transport === lifecycle.transport) {
this.#failAndClose(toDisconnectedError(error));
}
});
}
async #openTransport(id: number, handlers: ByteTransportHandlers): Promise<void> {
let transport: ByteTransport;
try {View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/client/src/connection.ts:103 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/85c4ce08ae69714c.
Report an issue: GitHub.