Skip to content

Commit aa2e3d5

Browse files
committed
fix(ai): Fix silent failure in Neural Link ConnectionService startup (#8209)
- Refactored startServer to return a Promise - Added event listeners for 'listening' and 'error' during startup - Ensures the MCP server fails fast if port 8081 is in use
1 parent c7b4224 commit aa2e3d5

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

ai/mcp/server/neural-link/services/ConnectionService.mjs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,25 @@ class ConnectionService extends Base {
8484
return;
8585
}
8686

87-
this.wss = new WebSocketServer({port: this.port});
88-
89-
this.wss.on('connection', (ws, req) => this.#handleConnection(ws, req));
90-
this.wss.on('error', (err) => logger.error('WebSocket Server Error:', err));
87+
return new Promise((resolve, reject) => {
88+
const wss = new WebSocketServer({port: this.port});
89+
90+
wss.on('listening', () => {
91+
logger.info(`WebSocket Server listening on port ${this.port}`);
92+
this.wss = wss;
93+
94+
// Attach permanent handlers only after successful start
95+
wss.on('connection', (ws, req) => this.#handleConnection(ws, req));
96+
wss.on('error', (err) => logger.error('WebSocket Server Error:', err));
97+
98+
resolve();
99+
});
91100

92-
logger.info(`WebSocket Server listening on port ${this.port}`);
101+
wss.on('error', (err) => {
102+
logger.error('WebSocket Server Startup Error:', err);
103+
reject(err);
104+
});
105+
});
93106
}
94107

95108
/**

0 commit comments

Comments
 (0)