{"record":{"id":"747b7614b37fd49c","repo":"exo-explore/exo","slug":"server-exited-without-shutdown-trigger-exiting-a","errorCode":null,"errorMessage":"Server exited without shutdown trigger - exiting abnormally","messagePattern":"Server exited without shutdown trigger - exiting abnormally","errorType":"exception","errorClass":"ShutdownError","httpStatus":null,"severity":"error","filePath":"src/exo/api/main.py","lineNumber":1960,"sourceCode":"        cfg.bind = [f\"0.0.0.0:{self.port}\"]\n        # nb: shared.logging needs updating if any of this changes\n        cfg.accesslog = None\n        cfg.errorlog = \"-\"\n        cfg.logger_class = InterceptLogger\n\n        # prevents hangs when mid-request and connection refuses to close\n        cfg.graceful_timeout = 2  # seconds\n        cfg.shutdown_timeout = 3  # seconds\n\n        with anyio.CancelScope(shield=True):\n            try:\n                await serve(\n                    cast(ASGIFramework, self.app),\n                    cfg,\n                    shutdown_trigger=ev.wait,\n                )\n                if not ev.is_set():\n                    raise ShutdownError(\n                        \"Server exited without shutdown trigger - exiting abnormally\"\n                    )\n            except LifespanTimeoutError as e:\n                logger.warning(\n                    \"Graceful server shutdown timed out, some connections forcebly closed\"\n                )\n                logger.opt(exception=e).debug(\"\")\n\n    async def _apply_state(self):\n        with self.event_receiver as events:\n            async for i_event in events:\n                self._event_log.append(i_event.event)\n                self.state = apply(self.state, i_event)\n                event = i_event.event\n\n                if isinstance(event, ChunkGenerated):\n                    if queue := self._image_generation_queues.get(\n                        event.command_id, None","sourceCodeStart":1942,"sourceCodeEnd":1978,"githubUrl":"https://github.com/exo-explore/exo/blob/21a54c5ea0230a3bec1e1a786d200126c7e34ec6/src/exo/api/main.py#L1942-L1978","documentation":"Error \"Server exited without shutdown trigger - exiting abnormally\" thrown in exo-explore/exo.","triggerScenarios":"Thrown at src/exo/api/main.py:1960 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"21a54c5ea0230a3bec1e1a786d200126c7e34ec6","analyzedAt":"2026-08-26T00:02:16.033Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}