From 18a0ff477c93428e1d693999b2a9d164bf4f56c8 Mon Sep 17 00:00:00 2001 From: jiasheng Date: Fri, 30 Jan 2026 15:10:46 +0800 Subject: [PATCH 1/2] fix(cli): handle error for proxy server --- packages/cli/src/actions/proxy.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/cli/src/actions/proxy.ts b/packages/cli/src/actions/proxy.ts index f3f27ef7..27c80951 100644 --- a/packages/cli/src/actions/proxy.ts +++ b/packages/cli/src/actions/proxy.ts @@ -166,6 +166,17 @@ function startServer(client: ClientContract, schema: any, options: Opt console.log(`You can visit ZenStack Studio at: ${colors.blue('https://studio.zenstack.dev')}`); }); + server.on('error', (err: NodeJS.ErrnoException) => { + if (err.code === 'EADDRINUSE') { + console.error( + colors.red(`Port ${options.port} is already in use. Please choose a different port using -p option.`), + ); + } else { + throw new CliError(`Failed to start the server: ${err.message}`); + } + process.exit(1); + }); + // Graceful shutdown process.on('SIGTERM', async () => { server.close(() => { From 2bc07218d2de1c703c3dc0e02d3b5c3d467d6ae4 Mon Sep 17 00:00:00 2001 From: jiasheng Date: Fri, 30 Jan 2026 15:47:36 +0800 Subject: [PATCH 2/2] fix(cli): update default port for ZenStack proxy server from 8008 to 2311 --- packages/cli/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 82d0e736..e3896606 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -196,7 +196,7 @@ Arguments following -- are passed to the seed script. E.g.: "zen db seed -- --us .alias('studio') .description('Start the ZenStack proxy server') .addOption(schemaOption) - .addOption(new Option('-p, --port ', 'port to run the proxy server on').default(8008)) + .addOption(new Option('-p, --port ', 'port to run the proxy server on').default(2311)) .addOption(new Option('-o, --output ', 'output directory for `zen generate` command')) .addOption(new Option('-d, --databaseUrl ', 'database connection URL')) .addOption(new Option('-l, --logLevel ', 'Query log levels (e.g., query, error)'))