$ the-wire · showcase
Open WebUI deletes dead admin settings code, keeps usage pool cleanup alive
By RepoJournal · Filed · About Open WebUI
Open WebUI removes two orphaned admin settings components and the unreachable async half of the Mistral loader, while hardening the usage pool cleanup task against lock loss and Redis errors.
Two admin settings components were dead code: the admin settings shell stopped being imported when the route became a redirect into the settings modal, and the model selector lost its last importer. This refactor removes around 590 lines, and every child component the shell used is still imported by the settings modal, so nothing breaks. [1]
The Mistral OCR loader's entire async pipeline was unreachable: an async load with its own upload, signed URL, OCR, delete, and retry helpers, plus a pooled session and a batch loader that nothing calls. All document loading goes through the synchronous path, which runs in a worker thread, and an unused Datalab request status poller goes too. [2]
With WEBSOCKET_MANAGER=redis on a multi-node deployment, the usage pool cleanup task could stop permanently for the whole cluster. Nodes that lost the startup lock race gave up after three attempts, and the winner died on a failed renew or Redis error, releasing the lock with nobody left to take it over. The fix keeps the task alive across lock loss and Redis errors, preventing expired entries from accumulating in the usage pool. [3]
Action items
- → Review your deploy for orphaned admin settings or Mistral async loader references before upgrading open-webui/open-webui [monitor]
- → If you run WEBSOCKET_MANAGER=redis on multi-node, upgrade to get the usage pool cleanup fix open-webui/open-webui [plan]
References
- [1] refactor: remove the orphaned admin settings components ↗ open-webui/open-webui
- [2] refactor: remove the unreachable async half of the Mistral loader and an unused Datalab helper ↗ open-webui/open-webui
- [3] fix: keep the usage pool cleanup task alive across lock loss and Redis errors (#28834) ↗ open-webui/open-webui