Describe the bug
PGLiteSocketServer.start() Promise swallows startup errors and hangs indefinitely. There's no log output unless debug: true is enabled.
To Reproduce
const { PGlite } = require('@electric-sql/pglite');
const { PGLiteSocketServer } = require('@electric-sql/pglite-socket');
const main = async () => {
console.log('Starting PGLite');
const db = await PGlite.create('memory://');
console.log('PGLite started');
server = new PGLiteSocketServer({
db,
path: '/this/path/does/not/exist',
debug: true
});
console.log('Waiting for PGLiteSocket to start...');
await server.start();
console.log("Started succesfully. Exiting.");
await server.stop();
await db.close();
}
const timeout = setTimeout(() => console.log('timed out'), 3600_000);
main().finally(() => clearTimeout(timeout));
Logs
# node index2.js
Starting PGLite
PGLite started
[PGLiteSocketServer] constructor: created server on /this/path/does/not/exist
[PGLiteSocketServer] constructor: max connections: 1
Waiting for PGLiteSocket to start...
[PGLiteSocketServer] start: starting server on /this/path/does/not/exist
[PGLiteSocketServer] start: server error: Error: listen EACCES: permission denied /this/path/does/not/exist
at Server.setupListenHandle [as _listen2] (node:net:1986:21)
at listenInCluster (node:net:2065:12)
at Server.listen (node:net:2187:5)
at /home/user/tmp/pglite/node_modules/.pnpm/@electric-sql+pglite-socket@0.1.3_@electric-sql+pglite@0.4.3/node_modules/@electric-sql/pglite-socket/dist/index.cjs:1:8566
at new Promise (<anonymous>)
at m.start (/home/user/tmp/pglite/node_modules/.pnpm/@electric-sql+pglite-socket@0.1.3_@electric-sql+pglite@0.4.3/node_modules/@electric-sql/pglite-socket/dist/index.cjs:1:8321)
at async main (/home/user/tmp/pglite/index2.js:17:3) {
code: 'EACCES',
errno: -13,
syscall: 'listen',
address: '/this/path/does/not/exist',
port: -1
}
[.... hangs forever ...]
Details
- PGlite version 0.4.3
- OS version
Linux ccode 6.12.74+deb13+1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.74-2 (2026-03-08) x86_64 GNU/Linux
- Node v25.9.0
Additional context
I think this condition needs to be flipped but I'm not sure if there's another reason why it's written this way:
https://github.com/electric-sql/pglite/blame/16bd20dff506fcf0e7a7d247d514c494ddfabefa/packages/pglite-socket/src/index.ts#L613-L615
Describe the bug
PGLiteSocketServer.start()Promise swallows startup errors and hangs indefinitely. There's no log output unlessdebug: trueis enabled.To Reproduce
Logs
Details
Linux ccode 6.12.74+deb13+1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.74-2 (2026-03-08) x86_64 GNU/LinuxAdditional context
I think this condition needs to be flipped but I'm not sure if there's another reason why it's written this way:
https://github.com/electric-sql/pglite/blame/16bd20dff506fcf0e7a7d247d514c494ddfabefa/packages/pglite-socket/src/index.ts#L613-L615