From b4810bb487b5938b7126d319b4f1bc64ef227c7b Mon Sep 17 00:00:00 2001 From: Pleasure1234 <3196812536@qq.com> Date: Sat, 18 Oct 2025 07:15:08 +0100 Subject: [PATCH] fix: improve api-server startup and error handling logic (#10794) * fix: improve server startup and error handling logic Refactored ApiServer to clean up failed server instances and ensure proper handling of server state. Updated loggerService import to use shared logger and improved error handling during server startup. * Update server.ts --- src/main/apiServer/server.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/apiServer/server.ts b/src/main/apiServer/server.ts index 0cba77aaa3..3cb81f4124 100644 --- a/src/main/apiServer/server.ts +++ b/src/main/apiServer/server.ts @@ -1,7 +1,8 @@ import { createServer } from 'node:http' +import { loggerService } from '@logger' + import { agentService } from '../services/agents' -import { loggerService } from '../services/LoggerService' import { app } from './app' import { config } from './config' @@ -15,11 +16,17 @@ export class ApiServer { private server: ReturnType | null = null async start(): Promise { - if (this.server) { + if (this.server && this.server.listening) { logger.warn('Server already running') return } + // Clean up any failed server instance + if (this.server && !this.server.listening) { + logger.warn('Cleaning up failed server instance') + this.server = null + } + // Load config const { port, host } = await config.load() @@ -39,7 +46,11 @@ export class ApiServer { resolve() }) - this.server!.on('error', reject) + this.server!.on('error', (error) => { + // Clean up the server instance if listen fails + this.server = null + reject(error) + }) }) }