{"record":{"id":"c49baa3fb2288689","repo":"openai/codex","slug":"login-login-id-r-is-not-registered-for-waiting","errorCode":null,"errorMessage":"login {login_id!r} is not registered for waiting","messagePattern":"login (.+?) is not registered for waiting","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"sdk/python/src/openai_codex/_message_router.py","lineNumber":83,"sourceCode":"                return\n            pending = self._pending_login_notifications.pop(login_id, deque())\n            self._login_notifications[login_id] = login_queue\n        for notification in pending:\n            login_queue.put(notification)\n\n    def unregister_login(self, login_id: str) -> None:\n        \"\"\"Stop routing future notifications for one login attempt.\"\"\"\n\n        with self._lock:\n            self._login_notifications.pop(login_id, None)\n\n    def next_login_notification(self, login_id: str) -> Notification:\n        \"\"\"Block until the next notification for a registered login attempt.\"\"\"\n\n        with self._lock:\n            login_queue = self._login_notifications.get(login_id)\n        if login_queue is None:\n            raise RuntimeError(f\"login {login_id!r} is not registered for waiting\")\n        item = login_queue.get()\n        if isinstance(item, BaseException):\n            raise item\n        return item\n\n    def register_turn(self, turn_id: str) -> None:\n        \"\"\"Register a queue for a turn stream and replay early events.\"\"\"\n\n        turn_queue: queue.Queue[NotificationQueueItem] = queue.Queue()\n        with self._lock:\n            if turn_id in self._turn_notifications:\n                return\n            # A turn can emit events immediately after turn/start, before the\n            # caller receives the TurnHandle and starts streaming.\n            pending = self._pending_turn_notifications.pop(turn_id, deque())\n            self._turn_notifications[turn_id] = turn_queue\n        for notification in pending:\n            turn_queue.put(notification)","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/sdk/python/src/openai_codex/_message_router.py#L65-L101","documentation":"Error \"login {login_id!r} is not registered for waiting\" thrown in openai/codex.","triggerScenarios":"Thrown at sdk/python/src/openai_codex/_message_router.py:83 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Call the login begin method and keep its login id before waiting for completion; do not wait on unknown ids."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}