File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -208,11 +208,20 @@ export async function handleRun(args: string[], io: CliIO): Promise<number> {
208208 writeLine ( io . stdout , ' β³ Waiting for server...' ) ;
209209 const started = await waitForServer ( baseUrl , authToken , 15_000 ) ;
210210 if ( ! started ) {
211- writeLine ( io . stderr , ' β Server failed to start within 15 seconds.' ) ;
212- writeLine ( io . stderr , ' Try starting manually: ag' ) ;
213- return 1 ;
211+ // Issue #3067: Race condition β an existing Aegis server may be on the port
212+ // but was in a crash loop when we first checked. Retry health check once
213+ // more before giving up β the existing server may have recovered.
214+ writeLine ( io . stdout , ' β³ Retrying health check (existing server may have recovered)...' ) ;
215+ if ( await isServerHealthy ( baseUrl , authToken ) ) {
216+ writeLine ( io . stdout , ' β
Connected to existing server' ) ;
217+ } else {
218+ writeLine ( io . stderr , ' β Server failed to start within 15 seconds.' ) ;
219+ writeLine ( io . stderr , ' Try starting manually: ag' ) ;
220+ return 1 ;
221+ }
222+ } else {
223+ writeLine ( io . stdout , ' β
Server started' ) ;
214224 }
215- writeLine ( io . stdout , ' β
Server started' ) ;
216225 }
217226
218227 // Create session
You canβt perform that action at this time.
0 commit comments