earendil-works/pi · error · Error
Unix listener path is not a socket after binding: ${ownedBin
Error message
Unix listener path is not a socket after binding: ${ownedBindPath} What it means
Error "Unix listener path is not a socket after binding: ${ownedBindPath}" thrown in earendil-works/pi.
Source
Thrown at packages/server/src/transports/unix/listener.ts:89
const server = createServer((socket) => this.acceptSocket(socket));
server.on("error", (error) => this.reportError(error));
this.server = server;
try {
await new Promise<void>((resolve, reject) => {
const onError = (error: Error): void => {
server.off("listening", onListening);
reject(error);
};
const onListening = (): void => {
server.off("error", onError);
resolve();
};
server.once("error", onError);
server.once("listening", onListening);
server.listen(ownedBindPath);
});
const stats = await lstat(ownedBindPath);
if (!stats.isSocket()) throw new Error(`Unix listener path is not a socket after binding: ${ownedBindPath}`);
this.socketIdentity = { dev: stats.dev, ino: stats.ino };
await link(ownedBindPath, this.path);
await setSocketMode(this.path, this.mode);
this.boundPath = this.path;
} catch (error) {
await this.closeServerAndCleanup(server);
this.server = undefined;
throw error;
}
}
async close(): Promise<void> {
if (this.closePromise) return this.closePromise;
this.closing = true;
this.closePromise = this.closeInternal();
return this.closePromise;
}
View on GitHub (pinned to 4af9d21d3b)
Solutions
- The bound path is not a socket; remove conflicting files at the path and retry.
When it happens
Trigger: Thrown at packages/server/src/transports/unix/listener.ts:89 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/5a3d38283a540799.
Report an issue: GitHub.