[GH-ISSUE #23168] ImportError: cannot load module more than once per process (numpy/chromadb) — broken in v0.8.11 and v0.8.12 #106898

Open
opened 2026-05-18 05:23:32 -05:00 by GiteaMirror · 10 comments
Owner

Originally created by @xang555 on GitHub (Mar 28, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23168

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.8.12

Ollama Version (if applicable)

No response

Operating System

Ubuntu 22.04,

Browser (if applicable)

No response

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

Container starts successfully, same as v0.8.10.

Actual Behavior

Starting from v0.8.11, the container crashes immediately on startup with:

ImportError: cannot load module more than once per process

Steps to Reproduce

  1. Use the official Docker image ghcr.io/open-webui/open-webui:v0.8.11 or v0.8.12
  2. Run with docker compose up
  3. Container exits immediately with code 0

Logs & Screenshots

File "/app/backend/open_webui/config.py", line 2167, in <module>
    import chromadb
  File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module>
    from chromadb.api.client import Client as ClientCreator
  File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module>
    from numpy.typing import NDArray
  File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module>
    from numpy.__config__ import show_config
  ...
ImportError: cannot load module more than once per process

Additional Information

No response

Originally created by @xang555 on GitHub (Mar 28, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23168 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.8.12 ### Ollama Version (if applicable) _No response_ ### Operating System Ubuntu 22.04, ### Browser (if applicable) _No response_ ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior Container starts successfully, same as v0.8.10. ### Actual Behavior Starting from v0.8.11, the container crashes immediately on startup with: ``` ImportError: cannot load module more than once per process ``` ### Steps to Reproduce 1. Use the official Docker image `ghcr.io/open-webui/open-webui:v0.8.11` or `v0.8.12` 2. Run with `docker compose up` 3. Container exits immediately with code 0 ### Logs & Screenshots ``` File "/app/backend/open_webui/config.py", line 2167, in <module> import chromadb File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module> from chromadb.api.client import Client as ClientCreator File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module> from numpy.typing import NDArray File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module> from numpy.__config__ import show_config ... ImportError: cannot load module more than once per process ``` ### Additional Information _No response_
GiteaMirror added the bug label 2026-05-18 05:23:32 -05:00
Author
Owner

@peter6055 commented on GitHub (Mar 28, 2026):

Got the same error too, downgrade to 0.8.10 will fix the issue, but 0.8.11 and 0.8.12 were broken.

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module>
    uvicorn.main()
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main
    run(
  File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run
    server.run()
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run
    return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 79, in serve
    await self._serve(sockets)
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 86, in _serve
    config.load()
  File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 441, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/app/backend/open_webui/main.py", line 61, in <module>
    from open_webui.utils.audit import AuditLevel, AuditLoggingMiddleware
  File "/app/backend/open_webui/utils/audit.py", line 28, in <module>
    from open_webui.utils.auth import get_current_user, get_http_authorization_cred
  File "/app/backend/open_webui/utils/auth.py", line 25, in <module>
    from open_webui.utils.access_control import has_permission
  File "/app/backend/open_webui/utils/access_control/__init__.py", line 12, in <module>
    from open_webui.config import DEFAULT_USER_PERMISSIONS
  File "/app/backend/open_webui/config.py", line 2167, in <module>
    import chromadb
  File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module>
    from chromadb.api.client import Client as ClientCreator
  File "/usr/local/lib/python3.11/site-packages/chromadb/api/__init__.py", line 1, in <module>
    from chromadb.api.types import *  # noqa: F401, F403
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module>
    from numpy.typing import NDArray
  File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module>
    from numpy.__config__ import show_config
  File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in <module>
    from numpy._core._multiarray_umath import (
  File "/usr/local/lib/python3.11/site-packages/numpy/_core/__init__.py", line 24, in <module>
    from . import multiarray
  File "/usr/local/lib/python3.11/site-packages/numpy/_core/multiarray.py", line 11, in <module>
    from . import _multiarray_umath, overrides
ImportError: cannot load module more than once per process
<!-- gh-comment-id:4148053286 --> @peter6055 commented on GitHub (Mar 28, 2026): Got the same error too, downgrade to 0.8.10 will fix the issue, but 0.8.11 and 0.8.12 were broken. ```` Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module> uvicorn.main() File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke return callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main run( File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run server.run() File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 79, in serve await self._serve(sockets) File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 86, in _serve config.load() File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 441, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1204, in _gcd_import File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/app/backend/open_webui/main.py", line 61, in <module> from open_webui.utils.audit import AuditLevel, AuditLoggingMiddleware File "/app/backend/open_webui/utils/audit.py", line 28, in <module> from open_webui.utils.auth import get_current_user, get_http_authorization_cred File "/app/backend/open_webui/utils/auth.py", line 25, in <module> from open_webui.utils.access_control import has_permission File "/app/backend/open_webui/utils/access_control/__init__.py", line 12, in <module> from open_webui.config import DEFAULT_USER_PERMISSIONS File "/app/backend/open_webui/config.py", line 2167, in <module> import chromadb File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module> from chromadb.api.client import Client as ClientCreator File "/usr/local/lib/python3.11/site-packages/chromadb/api/__init__.py", line 1, in <module> from chromadb.api.types import * # noqa: F401, F403 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module> from numpy.typing import NDArray File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module> from numpy.__config__ import show_config File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in <module> from numpy._core._multiarray_umath import ( File "/usr/local/lib/python3.11/site-packages/numpy/_core/__init__.py", line 24, in <module> from . import multiarray File "/usr/local/lib/python3.11/site-packages/numpy/_core/multiarray.py", line 11, in <module> from . import _multiarray_umath, overrides ImportError: cannot load module more than once per process ````
Author
Owner

@bennodepenno commented on GitHub (Mar 28, 2026):

I ran into the same issue. In my case, since I'm running open-webui using docker in a Virtual Machine, I looked at the CPU setting of the VM which was set to qemu64. Changing it to x86-64-v2-AES (providing access to some CPU features which would otherwise be shielded) solved the issue for me. If you are running open-webui as a container inside a VM, this might be worth looking into.

<!-- gh-comment-id:4148180350 --> @bennodepenno commented on GitHub (Mar 28, 2026): I ran into the same issue. In my case, since I'm running open-webui using docker in a Virtual Machine, I looked at the CPU setting of the VM which was set to qemu64. Changing it to x86-64-v2-AES (providing access to some CPU features which would otherwise be shielded) solved the issue for me. If you are running open-webui as a container inside a VM, this might be worth looking into.
Author
Owner

@elliotd123 commented on GitHub (Mar 31, 2026):

Same issue, but I can't use the CPU setting referenced above because I'm running it on ancient hardware.

<!-- gh-comment-id:4165020747 --> @elliotd123 commented on GitHub (Mar 31, 2026): Same issue, but I can't use the CPU setting referenced above because I'm running it on ancient hardware.
Author
Owner

@tmulle commented on GitHub (Mar 31, 2026):

I also hit this in Proxmox just now with the latest image running a Debian VM for my docker.

I was running the default kvm64 cpu type and changing it to x86-64-v2-AES also let openwebui run successfully.

<!-- gh-comment-id:4166240995 --> @tmulle commented on GitHub (Mar 31, 2026): I also hit this in Proxmox just now with the latest image running a Debian VM for my docker. I was running the default `kvm64` cpu type and changing it to `x86-64-v2-AES` also let openwebui run successfully.
Author
Owner

@peter6055 commented on GitHub (Apr 1, 2026):

Using Proxmox with Ubuntu, changing the default cpu to x86-64-v2-AES fixed it

<!-- gh-comment-id:4166595899 --> @peter6055 commented on GitHub (Apr 1, 2026): Using Proxmox with Ubuntu, changing the default cpu to `x86-64-v2-AES` fixed it
Author
Owner

@MadDawg commented on GitHub (Apr 11, 2026):

As I am also running on ancient hardware (Intel Core i7-930 circa 2010), changing the default CPU likewise did not work for me. Downgrading to 0.8.10 suffices for now.

<!-- gh-comment-id:4228278430 --> @MadDawg commented on GitHub (Apr 11, 2026): As I am also running on ancient hardware (Intel Core i7-930 circa 2010), changing the default CPU likewise did not work for me. Downgrading to 0.8.10 suffices for now.
Author
Owner

@svdasein commented on GitHub (Apr 17, 2026):

I'm getting this issue as well. I've tried manually "patching" it by installing an older numpy with pip in the container, but the container doesn't actually stay running long enough for that to actually work.

<!-- gh-comment-id:4268500600 --> @svdasein commented on GitHub (Apr 17, 2026): I'm getting this issue as well. I've tried manually "patching" it by installing an older numpy with pip in the container, but the container doesn't actually stay running long enough for that to actually work.
Author
Owner

@cbundy commented on GitHub (Apr 20, 2026):

Thanks @bennodepenno - I was tearing my hair out wondering why it was working on my desktop but not when I moved it to the server a week later.

<!-- gh-comment-id:4284371505 --> @cbundy commented on GitHub (Apr 20, 2026): Thanks @bennodepenno - I was tearing my hair out wondering why it was working on my desktop but not when I moved it to the server a week later.
Author
Owner

@lopes143 commented on GitHub (Apr 21, 2026):

After trying to update to 0.9.1, the error message changed. Now it's more straightforward:

openwebui-1  |   File "<frozen runpy>", line 198, in _run_module_as_main
openwebui-1  |   File "<frozen runpy>", line 88, in _run_code
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module>
openwebui-1  |     uvicorn.main()
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__
openwebui-1  |     return self.main(*args, **kwargs)
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
openwebui-1  |     rv = self.invoke(ctx)
openwebui-1  |          ^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
openwebui-1  |     return ctx.invoke(self.callback, **ctx.params)
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
openwebui-1  |     return callback(*args, **kwargs)
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main
openwebui-1  |     run(
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run
openwebui-1  |     server.run()
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run
openwebui-1  |     return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
openwebui-1  |     return runner.run(main)
openwebui-1  |            ^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
openwebui-1  |     return self._loop.run_until_complete(task)
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 79, in serve
openwebui-1  |     await self._serve(sockets)
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 86, in _serve
openwebui-1  |     config.load()
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 441, in load
openwebui-1  |     self.loaded_app = import_from_string(self.app)
openwebui-1  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
openwebui-1  |     module = importlib.import_module(module_str)
openwebui-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
openwebui-1  |     return _bootstrap._gcd_import(name[level:], package, level)
openwebui-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
openwebui-1  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
openwebui-1  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
openwebui-1  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
openwebui-1  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
openwebui-1  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
openwebui-1  |   File "/app/backend/open_webui/main.py", line 60, in <module>
openwebui-1  |     from open_webui.utils.asgi_middleware import (
openwebui-1  |   File "/app/backend/open_webui/utils/asgi_middleware.py", line 45, in <module>
openwebui-1  |     from open_webui.utils.auth import get_http_authorization_cred
openwebui-1  |   File "/app/backend/open_webui/utils/auth.py", line 23, in <module>
openwebui-1  |     from open_webui.utils.access_control import has_permission
openwebui-1  |   File "/app/backend/open_webui/utils/access_control/__init__.py", line 12, in <module>
openwebui-1  |     from open_webui.config import DEFAULT_USER_PERMISSIONS
openwebui-1  |   File "/app/backend/open_webui/config.py", line 2284, in <module>
openwebui-1  |     import chromadb
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module>
openwebui-1  |     from chromadb.api.client import Client as ClientCreator
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/chromadb/api/__init__.py", line 1, in <module>
openwebui-1  |     from chromadb.api.types import *  # noqa: F401, F403
openwebui-1  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module>
openwebui-1  |     from numpy.typing import NDArray
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module>
openwebui-1  |     from numpy.__config__ import show_config
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in <module>
openwebui-1  |     from numpy._core._multiarray_umath import (
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/numpy/_core/__init__.py", line 24, in <module>
openwebui-1  |     from . import multiarray
openwebui-1  |   File "/usr/local/lib/python3.11/site-packages/numpy/_core/multiarray.py", line 11, in <module>
openwebui-1  |     from . import _multiarray_umath, overrides
openwebui-1  | RuntimeError: NumPy was built with baseline optimizations: 
openwebui-1  | (X86_V2) but your machine doesn't support:
openwebui-1  | (X86_V2).
openwebui-1 exited with code 1 (restarting)

Running Open WebUI on Docker Compose

<!-- gh-comment-id:4288853857 --> @lopes143 commented on GitHub (Apr 21, 2026): After trying to update to 0.9.1, the error message changed. Now it's more straightforward: ```Traceback (most recent call last): openwebui-1 | File "<frozen runpy>", line 198, in _run_module_as_main openwebui-1 | File "<frozen runpy>", line 88, in _run_code openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module> openwebui-1 | uvicorn.main() openwebui-1 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__ openwebui-1 | return self.main(*args, **kwargs) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main openwebui-1 | rv = self.invoke(ctx) openwebui-1 | ^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke openwebui-1 | return ctx.invoke(self.callback, **ctx.params) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke openwebui-1 | return callback(*args, **kwargs) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main openwebui-1 | run( openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run openwebui-1 | server.run() openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run openwebui-1 | return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory()) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run openwebui-1 | return runner.run(main) openwebui-1 | ^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run openwebui-1 | return self._loop.run_until_complete(task) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 79, in serve openwebui-1 | await self._serve(sockets) openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 86, in _serve openwebui-1 | config.load() openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 441, in load openwebui-1 | self.loaded_app = import_from_string(self.app) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string openwebui-1 | module = importlib.import_module(module_str) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module openwebui-1 | return _bootstrap._gcd_import(name[level:], package, level) openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "<frozen importlib._bootstrap>", line 1204, in _gcd_import openwebui-1 | File "<frozen importlib._bootstrap>", line 1176, in _find_and_load openwebui-1 | File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked openwebui-1 | File "<frozen importlib._bootstrap>", line 690, in _load_unlocked openwebui-1 | File "<frozen importlib._bootstrap_external>", line 940, in exec_module openwebui-1 | File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed openwebui-1 | File "/app/backend/open_webui/main.py", line 60, in <module> openwebui-1 | from open_webui.utils.asgi_middleware import ( openwebui-1 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 45, in <module> openwebui-1 | from open_webui.utils.auth import get_http_authorization_cred openwebui-1 | File "/app/backend/open_webui/utils/auth.py", line 23, in <module> openwebui-1 | from open_webui.utils.access_control import has_permission openwebui-1 | File "/app/backend/open_webui/utils/access_control/__init__.py", line 12, in <module> openwebui-1 | from open_webui.config import DEFAULT_USER_PERMISSIONS openwebui-1 | File "/app/backend/open_webui/config.py", line 2284, in <module> openwebui-1 | import chromadb openwebui-1 | File "/usr/local/lib/python3.11/site-packages/chromadb/__init__.py", line 3, in <module> openwebui-1 | from chromadb.api.client import Client as ClientCreator openwebui-1 | File "/usr/local/lib/python3.11/site-packages/chromadb/api/__init__.py", line 1, in <module> openwebui-1 | from chromadb.api.types import * # noqa: F401, F403 openwebui-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openwebui-1 | File "/usr/local/lib/python3.11/site-packages/chromadb/api/types.py", line 20, in <module> openwebui-1 | from numpy.typing import NDArray openwebui-1 | File "/usr/local/lib/python3.11/site-packages/numpy/__init__.py", line 112, in <module> openwebui-1 | from numpy.__config__ import show_config openwebui-1 | File "/usr/local/lib/python3.11/site-packages/numpy/__config__.py", line 4, in <module> openwebui-1 | from numpy._core._multiarray_umath import ( openwebui-1 | File "/usr/local/lib/python3.11/site-packages/numpy/_core/__init__.py", line 24, in <module> openwebui-1 | from . import multiarray openwebui-1 | File "/usr/local/lib/python3.11/site-packages/numpy/_core/multiarray.py", line 11, in <module> openwebui-1 | from . import _multiarray_umath, overrides openwebui-1 | RuntimeError: NumPy was built with baseline optimizations: openwebui-1 | (X86_V2) but your machine doesn't support: openwebui-1 | (X86_V2). openwebui-1 exited with code 1 (restarting) ``` Running Open WebUI on Docker Compose
Author
Owner

@JoeKae commented on GitHub (May 3, 2026):

If the hardware is old, the issue is numpy. We have to compile it without the baseline optimizations in the Dockerfile, so it supports older hardware. Maybe publish the image with a -legacy tag extension?

<!-- gh-comment-id:4367482240 --> @JoeKae commented on GitHub (May 3, 2026): If the hardware is old, the issue is numpy. We have to compile it without the baseline optimizations in the Dockerfile, so it supports older hardware. Maybe publish the image with a -legacy tag extension?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#106898