[GH-ISSUE #4968] v0.3.16: Error No config file 'alembic.ini' found, or file has no '[alembic]' section #117116

Closed
opened 2026-05-20 18:48:15 -05:00 by GiteaMirror · 9 comments
Owner

Originally created by @hronoas on GitHub (Aug 28, 2024).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/4968

Bug Report

Installation Method

clean install with venv

Environment

  • Open WebUI Version: v0.3.16

  • Operating System: Windows 11

Confirmation:

  • I have read and followed all the instructions provided in the README.md.
  • I am on 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 the exact steps to reproduce the bug in the "Steps to Reproduce" section below.

Expected Behavior:

open-webui must server

Actual Behavior:

error during start:

Running migrations
Error: No config file 'alembic.ini' found, or file has no '[alembic]' section

Description

Bug Summary:
ufter updating open-webui or clean installaton to v0.3.16 open-webui not starting with errors

Reproduction Details

Steps to Reproduce:
in console

python -m venv venv
venv\Scripts\activate
pip install open-webui
open-webui serve

Logs and Screenshots

Console output
E:\neuro\123>python -m venv venv

E:\neuro\123>venv\Scripts\activate

(venv) E:\neuro\123>pip install open-webui
Collecting open-webui
  Downloading open_webui-0.3.16-py3-none-any.whl.metadata (16 kB)
Collecting aiohttp==3.10.2 (from open-webui)
  Downloading aiohttp-3.10.2-cp311-cp311-win_amd64.whl.metadata (7.8 kB)
Collecting alembic==1.13.2 (from open-webui)
  Downloading alembic-1.13.2-py3-none-any.whl.metadata (7.4 kB)
Collecting anthropic (from open-webui)
  Downloading anthropic-0.34.1-py3-none-any.whl.metadata (18 kB)
Collecting apscheduler==3.10.4 (from open-webui)
  Downloading APScheduler-3.10.4-py3-none-any.whl.metadata (5.7 kB)
Collecting argon2-cffi==23.1.0 (from open-webui)
  Downloading argon2_cffi-23.1.0-py3-none-any.whl.metadata (5.2 kB)
.....
.....
.....
Successfully installed Mako-1.3.5 MarkupSafe-2.1.5 Pillow-10.4.0 PyYAML-6.0.2 RTFDE-0.1.2 Shapely-2.0.6 Werkzeug-3.0.4 XlsxWriter-3.2.0 aiohappyeyeballs-2.4.0 aiohttp-3.10.2 aiosignal-1.3.1 alembic-1.13.2 annotated-types-0.7.0 anthropic-0.34.1 anyio-4.4.0 apscheduler-3.10.4 argon2-cffi-23.1.0 argon2-cffi-bindings-21.2.0 asgiref-3.8.1 attrs-24.2.0 authlib-1.3.1 av-12.3.0 backoff-2.2.1 bcrypt-4.2.0 beautifulsoup4-4.12.3 bidict-0.23.1 black-24.8.0 blinker-1.8.2 boto3-1.35.0 botocore-1.35.7 build-1.2.1 cachetools-5.5.0 certifi-2024.7.4 cffi-1.17.0 chardet-5.2.0 charset-normalizer-3.3.2 chroma-hnswlib-0.7.6 chromadb-0.5.5 click-8.1.7 colorama-0.4.6 colorclass-2.2.2 coloredlogs-15.0.1 compressed-rtf-1.0.6 cryptography-43.0.0 ctranslate2-4.3.1 dataclasses-json-0.6.7 deepdiff-8.0.0 defusedxml-0.7.1 deprecated-1.2.14 distro-1.9.0 dnspython-2.6.1 docker-7.1.0 docx2txt-0.8 duckduckgo-search-6.2.11 easygui-0.98.3 ebcdic-1.1.1 ecdsa-0.19.0 email_validator-2.2.0 emoji-2.12.1 et-xmlfile-1.1.0 extract-msg-0.49.0 fake-useragent-1.5.1 fastapi-0.111.0 fastapi-cli-0.0.5 faster-whisper-1.0.3 filelock-3.15.4 filetype-1.2.0 flask-3.0.3 flask-cors-4.0.1 flatbuffers-24.3.25 fonttools-4.53.1 fpdf2-2.7.9 frozenlist-1.4.1 fsspec-2024.6.1 google-ai-generativelanguage-0.6.6 google-api-core-2.19.2 google-api-python-client-2.142.0 google-auth-2.34.0 google-auth-httplib2-0.2.0 google-generativeai-0.7.2 googleapis-common-protos-1.65.0 greenlet-3.0.3 grpcio-1.66.0 grpcio-status-1.62.3 h11-0.14.0 httpcore-1.0.5 httplib2-0.22.0 httptools-0.6.1 httpx-0.27.2 huggingface-hub-0.24.6 humanfriendly-10.0 idna-3.8 importlib-metadata-8.0.0 importlib-resources-6.4.4 iniconfig-2.0.0 itsdangerous-2.2.0 jinja2-3.1.4 jiter-0.5.0 jmespath-1.0.1 joblib-1.4.2 jsonpatch-1.33 jsonpath-python-1.0.6 jsonpointer-3.0.0 kubernetes-30.1.0 langchain-0.2.14 langchain-chroma-0.1.2 langchain-community-0.2.12 langchain-core-0.2.35 langchain-text-splitters-0.2.2 langdetect-1.0.9 langfuse-2.44.0 langsmith-0.1.106 lark-1.1.9 lxml-5.3.0 markdown-3.7 markdown-it-py-3.0.0 marshmallow-3.22.0 mdurl-0.1.2 mmh3-4.1.0 monotonic-1.6 mpmath-1.3.0 msoffcrypto-tool-5.4.2 multidict-6.0.5 mypy-extensions-1.0.0 nest-asyncio-1.6.0 networkx-3.3 nltk-3.9.1 numpy-1.26.4 oauthlib-3.2.2 olefile-0.47 oletools-0.60.2 onnxruntime-1.19.0 open-webui-0.3.16 openai-1.42.0 opencv-python-4.10.0.84 opencv-python-headless-4.10.0.84 openpyxl-3.1.5 opentelemetry-api-1.26.0 opentelemetry-exporter-otlp-proto-common-1.26.0 opentelemetry-exporter-otlp-proto-grpc-1.26.0 opentelemetry-instrumentation-0.47b0 opentelemetry-instrumentation-asgi-0.47b0 opentelemetry-instrumentation-fastapi-0.47b0 opentelemetry-proto-1.26.0 opentelemetry-sdk-1.26.0 opentelemetry-semantic-conventions-0.47b0 opentelemetry-util-http-0.47b0 orderly-set-5.2.1 orjson-3.10.7 overrides-7.7.0 packaging-23.2 pandas-2.2.2 passlib-1.7.4 pathspec-0.12.1 pcodedmp-1.2.6 peewee-3.17.6 peewee-migrate-1.12.2 platformdirs-4.2.2 pluggy-1.5.0 posthog-3.6.0 primp-0.6.1 proto-plus-1.24.0 protobuf-4.25.4 psutil-6.0.0 psycopg2-binary-2.9.9 pyasn1-0.6.0 pyasn1-modules-0.4.0 pyclipper-1.3.0.post5 pycparser-2.22 pydantic-2.8.2 pydantic-core-2.20.1 pydub-0.25.1 pygments-2.18.0 pyjwt-2.9.0 pymongo-4.8.0 pymysql-1.1.1 pypandoc-1.13 pyparsing-3.1.4 pypdf-4.3.1 pypika-0.48.9 pyproject_hooks-1.1.0 pyreadline3-3.4.1 pytest-8.2.2 pytest-docker-3.1.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 python-engineio-4.9.1 python-iso639-2024.4.27 python-jose-3.3.0 python-magic-0.4.27 python-multipart-0.0.9 python-pptx-1.0.0 python-socketio-5.11.3 pytube-15.0.0 pytz-2024.1 pywin32-306 pyxlsb-1.0.10 rank-bm25-0.2.2 rapidfuzz-3.9.6 rapidocr-onnxruntime-1.3.24 red-black-tree-mod-1.20 redis-5.0.8 regex-2024.7.24 requests-2.32.3 requests-oauthlib-2.0.0 requests-toolbelt-1.0.0 rich-13.8.0 rsa-4.9 s3transfer-0.10.2 safetensors-0.4.4 scikit-learn-1.5.1 scipy-1.14.1 sentence-transformers-3.0.1 shellingham-1.5.4 simple-websocket-1.0.0 six-1.16.0 sniffio-1.3.1 soupsieve-2.6 sqlalchemy-2.0.32 starlette-0.37.2 sympy-1.13.2 tabulate-0.9.0 tenacity-8.5.0 threadpoolctl-3.5.0 tiktoken-0.7.0 tokenizers-0.19.1 torch-2.4.0 tqdm-4.66.5 transformers-4.44.2 typer-0.12.5 typing-extensions-4.12.2 typing-inspect-0.9.0 tzdata-2024.1 tzlocal-5.2 ujson-5.10.0 unstructured-0.15.7 unstructured-client-0.25.5 uritemplate-4.1.1 urllib3-2.2.2 uvicorn-0.30.6 validators-0.33.0 watchfiles-0.23.0 websocket-client-1.8.0 websockets-13.0 win-unicode-console-0.5 wrapt-1.16.0 wsproto-1.2.0 xlrd-2.0.1 yarl-1.9.4 youtube-transcript-api-0.6.2 zipp-3.20.1

[notice] A new release of pip is available: 24.0 -> 24.2
[notice] To update, run: python.exe -m pip install --upgrade pip

(venv) E:\neuro\123>open-webui serve
Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Generating a new secret key and saving it to E:\neuro\123\.webui_secret_key
Loading WEBUI_SECRET_KEY from E:\neuro\123\.webui_secret_key
E:\neuro\123\venv\Lib
Running migrations
Error: No config file 'alembic.ini' found, or file has no '[alembic]' section
┌────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────���────────────────────────┐
│ E:\neuro\123\venv\Lib\site-packages\sqlalchemy\engine\base.py:1967 in _exec_single_context                                                    │
│                                                                                                                                               │
│   1964 │   │   │   │   │   │   │   evt_handled = True                                                                                         │
│   1965 │   │   │   │   │   │   │   break                                                                                                      │
│   1966 │   │   │   │   if not evt_handled:                                                                                                    │
│ > 1967 │   │   │   │   │   self.dialect.do_execute(                                                                                           │
│   1968 │   │   │   │   │   │   cursor, str_statement, effective_parameters, context                                                           │
│   1969 │   │   │   │   │   )                                                                                                                  │
│   1970                                                                                                                                        │
│                                                                                                                                               │
│ ┌───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────┐                          │
│ │              context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0x000002253A930690>     │                          │
│ │               cursor = <sqlite3.Cursor object at 0x000002253AED6540>                                             │                          │
│ │              dialect = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x000002250A7926D0> │                          │
│ │ effective_parameters = (1, 0)                                                                                    │                          │
│ │          evt_handled = False                                                                                     │                          │
│ │           parameters = [(1, 0)]                                                                                  │                          │
│ │                 self = <sqlalchemy.engine.base.Connection object at 0x000002253AEB7190>                          │                          │
│ │            statement = <sqlalchemy.dialects.sqlite.base.SQLiteCompiler object at 0x000002253A81AFD0>             │                          │
│ │        str_statement = 'SELECT config.id AS config_id, config.data AS config_data, config.version AS con'+146    │                          │
│ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘                          │
│                                                                                                                                               │
│ E:\neuro\123\venv\Lib\site-packages\sqlalchemy\engine\default.py:941 in do_execute                                                            │
│                                                                                                                                               │
│    938 │   │   cursor.executemany(statement, parameters)                                                                                      │
│    939 │                                                                                                                                      │
│    940 │   def do_execute(self, cursor, statement, parameters, context=None):                                                                 │
│ >  941 │   │   cursor.execute(statement, parameters)                                                                                          │
│    942 │                                                                                                                                      │
│    943 │   def do_execute_no_params(self, cursor, statement, context=None):                                                                   │
│    944 │   │   cursor.execute(statement)                                                                                                      │
│                                                                                                                                               │
│ ┌──────────────────────────────────────────────── locals ────────────────────────────────────────────────┐                                    │
│ │    context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0x000002253A930690>     │                                    │
│ │     cursor = <sqlite3.Cursor object at 0x000002253AED6540>                                             │                                    │
│ │ parameters = (1, 0)                                                                                    │                                    │
│ │       self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x000002250A7926D0> │                                    │
│ │  statement = 'SELECT config.id AS config_id, config.data AS config_data, config.version AS con'+146    │                                    │
│ └────────────────────────────────────────────────────────────────────────────────────────────────────────┘                                    │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
OperationalError: no such table: config

The above exception was the direct cause of the following exception:

┌────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────┐
│ E:\neuro\123\venv\Lib\site-packages\open_webui\__init__.py:43 in serve                                                                        │
│                                                                                                                                               │
│   40 │   │   │   │   "/usr/local/lib/python3.11/site-packages/nvidia/cudnn/lib",              ┌───── locals ─────┐                            │
│   41 │   │   │   ]                                                                            │ host = '0.0.0.0' │                            │
│   42 │   │   )                                                                                │ port = 8080      │                            │
│ > 43 │   import main  # we need set environment variables before importing main               └──────────────────┘                            │
│   44 │                                                                                                                                        │
│   45 │   uvicorn.run(main.app, host=host, port=port, forwarded_allow_ips="*")                                                                 │
│   46                                                                                                                                          │
│                                                                                                                                               │
│ E:\neuro\123\venv\Lib\site-packages\main.py:31 in <module>                                                                                    │
│                                                                                                                                               │
│     28                                                                                                                                        │
│     29                                                                                                                                        │
│     30 from apps.socket.main import app as socket_app, get_event_emitter, get_event_call                                                      │
│ >   31 from apps.ollama.main import (                                                                                                         │
│     32 │   app as ollama_app,                                                                                                                 │
│     33 │   get_all_models as get_ollama_models,                                                                                               │
│     34 │   generate_openai_chat_completion as generate_ollama_chat_completion,                                                                │
│                                                                                                                                               │
│ ┌────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────┐                │
│ │                aiohttp = <module 'aiohttp' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\aiohttp\\__init__.py'>          │                │
│ │    asynccontextmanager = <function asynccontextmanager at 0x0000022502BBF920>                                              │                │
│ │                 base64 = <module 'base64' from 'E:\\neuro\\_python311\\Lib\\base64.py'>                                    │                │
│ │     BaseHTTPMiddleware = <class 'starlette.middleware.base.BaseHTTPMiddleware'>                                            │                │
│ │         CORSMiddleware = <class 'starlette.middleware.cors.CORSMiddleware'>                                                │                │
│ │                Depends = <function Depends at 0x000002250828FF60>                                                          │                │
│ │                FastAPI = <class 'fastapi.applications.FastAPI'>                                                            │                │
│ │                   File = <function File at 0x000002250828FEC0>                                                             │                │
│ │                   Form = <function Form at 0x000002250828FE20>                                                             │                │
│ │         get_event_call = <function get_event_call at 0x000002250ABBF920>                                                   │                │
│ │      get_event_emitter = <function get_event_emitter at 0x000002250ABBF880>                                                │                │
│ │          HTTPException = <class 'fastapi.exceptions.HTTPException'>                                                        │                │
│ │                inspect = <module 'inspect' from 'E:\\neuro\\_python311\\Lib\\inspect.py'>                                  │                │
│ │                   json = <module 'json' from 'E:\\neuro\\_python311\\Lib\\json\\__init__.py'>                              │                │
│ │           JSONResponse = <class 'starlette.responses.JSONResponse'>                                                        │                │
│ │                logging = <module 'logging' from 'E:\\neuro\\_python311\\Lib\\logging\\__init__.py'>                        │                │
│ │              mimetypes = <module 'mimetypes' from 'E:\\neuro\\_python311\\Lib\\mimetypes.py'>                              │                │
│ │                  OAuth = <class 'authlib.integrations.starlette_client.OAuth'>                                             │                │
│ │               Optional = typing.Optional                                                                                   │                │
│ │                     os = <module 'os' (frozen)>                                                                            │                │
│ │       RedirectResponse = <class 'starlette.responses.RedirectResponse'>                                                    │                │
│ │                Request = <class 'starlette.requests.Request'>                                                              │                │
│ │               requests = <module 'requests' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\requests\\__init__.py'>        │                │
│ │               Response = <class 'starlette.responses.Response'>                                                            │                │
│ │      SessionMiddleware = <class 'starlette.middleware.sessions.SessionMiddleware'>                                         │                │
│ │                 shutil = <module 'shutil' from 'E:\\neuro\\_python311\\Lib\\shutil.py'>                                    │                │
│ │             socket_app = <socketio.asgi.ASGIApp object at 0x00000225089D0810>                                              │                │
│ │ StarletteHTTPException = <class 'starlette.exceptions.HTTPException'>                                                      │                │
│ │            StaticFiles = <class 'starlette.staticfiles.StaticFiles'>                                                       │                │
│ │                 status = <module 'starlette.status' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\starlette\\status.py'> │                │
│ │      StreamingResponse = <class 'starlette.responses.StreamingResponse'>                                                   │                │
│ │                    sys = <module 'sys' (built-in)>                                                                         │                │
│ │                   text = <function text at 0x000002250887F920>                                                             │                │
│ │                   time = <module 'time' (built-in)>                                                                        │                │
│ │             UploadFile = <class 'fastapi.datastructures.UploadFile'>                                                       │                │
│ │               UserInfo = <class 'authlib.oidc.core.claims.UserInfo'>                                                       │                │
│ │                   uuid = <module 'uuid' from 'E:\\neuro\\_python311\\Lib\\uuid.py'>                                        │                │
│ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘                │
│                                                                                                                                               │
│ E:\neuro\123\venv\Lib\site-packages\apps\ollama\main.py:35 in <module>                                                                        │
│                                                                                                                                               │
│     32 │   get_admin_user,                                                                                                                    │
│     33 )                                                                                                                                      │
│     34                                                                                                                                        │
│ >   35 from config import (                                                                                                                   │
│     36 │   SRC_LOG_LEVELS,                                                                                                                    │
│     37 │   OLLAMA_BASE_URLS,                                                                                                                  │
│     38 │   ENABLE_OLLAMA_API,                                                                                                                 │
│                                                                                                                                               │
│ ┌──────────────────────────────────────────────────── locals ────────────────────────────────────────────────────┐                            │
│ │           aiohttp = <module 'aiohttp' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\aiohttp\\__init__.py'>   │                            │
│ │           asyncio = <module 'asyncio' from 'E:\\neuro\\_python311\\Lib\\asyncio\\__init__.py'>                 │                            │
│ │    BackgroundTask = <class 'starlette.background.BackgroundTask'>                                              │                            │
│ │         BaseModel = <class 'pydantic.main.BaseModel'>                                                          │                            │
│ │        ConfigDict = <class 'pydantic.config.ConfigDict'>                                                       │                            │
│ │    CORSMiddleware = <class 'starlette.middleware.cors.CORSMiddleware'>                                         │                            │
│ │           Depends = <function Depends at 0x000002250828FF60>                                                   │                            │
│ │    ERROR_MESSAGES = <enum 'ERROR_MESSAGES'>                                                                    │                            │
│ │           FastAPI = <class 'fastapi.applications.FastAPI'>                                                     │                            │
│ │              File = <function File at 0x000002250828FEC0>                                                      │                            │
│ │    get_admin_user = <function get_admin_user at 0x000002250ABBF560>                                            │                            │
│ │ get_verified_user = <function get_verified_user at 0x000002250ABBF4C0>                                         │                            │
│ │     HTTPException = <class 'fastapi.exceptions.HTTPException'>                                                 │                            │
│ │              json = <module 'json' from 'E:\\neuro\\_python311\\Lib\\json\\__init__.py'>                       │                            │
│ │           logging = <module 'logging' from 'E:\\neuro\\_python311\\Lib\\logging\\__init__.py'>                 │                            │
│ │            Models = <apps.webui.models.models.ModelsTable object at 0x000002250AC09F90>                        │                            │
│ │          Optional = typing.Optional                                                                            │                            │
│ │                os = <module 'os' (frozen)>                                                                     │                            │
│ │            random = <module 'random' from 'E:\\neuro\\_python311\\Lib\\random.py'>                             │                            │
│ │                re = <module 're' from 'E:\\neuro\\_python311\\Lib\\re\\__init__.py'>                           │                            │
│ │           Request = <class 'starlette.requests.Request'>                                                       │                            │
│ │          requests = <module 'requests' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\requests\\__init__.py'> │                            │
│ │ StreamingResponse = <class 'starlette.responses.StreamingResponse'>                                            │                            │
│ │              time = <module 'time' (built-in)>                                                                 │                            │
│ │             Union = typing.Union                                                                               │                            │
│ │        UploadFile = <class 'fastapi.datastructures.UploadFile'>                                                │                            │
│ │          urlparse = <function urlparse at 0x0000022502EFDB20>                                                  │                            │
│ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘                            │
│                                                                                                                                               │
│ E:\neuro\123\venv\Lib\site-packages\config.py:189 in <module>                                                                                 │
│                                                                                                                                               │
│    186 │   │   return config_entry.data if config_entry else DEFAULT_CONFIG                                                                   │
│    187                                                                                                                                        │
│    188                                                                                                                                        │
│ >  189 CONFIG_DATA = get_config()                                                                                                             │
│    190                                                                                                                                        │
│    191                                                                                                                                        │
│    192 def get_config_value(config_path: str):                                                                                                │
│                                                                                                                                               │
│ ┌───────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────┐ │
│ │                     BACKEND_DIR = WindowsPath('E:/neuro/123/venv/Lib/site-packages')                                                      │ │
│ │                            Base = <class 'sqlalchemy.orm.decl_api.Base'>                                                                  │ │
......
......
......
OperationalError: (sqlite3.OperationalError) no such table: config
[SQL: SELECT config.id AS config_id, config.data AS config_data, config.version AS config_version, config.created_at AS config_created_at,
config.updated_at AS config_updated_at
FROM config ORDER BY config.id DESC
 LIMIT ? OFFSET ?]
[parameters: (1, 0)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)

(venv) E:\neuro\123>
Originally created by @hronoas on GitHub (Aug 28, 2024). Original GitHub issue: https://github.com/open-webui/open-webui/issues/4968 # Bug Report ## Installation Method clean install with venv ## Environment - **Open WebUI Version:** v0.3.16 - **Operating System:** Windows 11 **Confirmation:** - [x] I have read and followed all the instructions provided in the README.md. - [x] I am on the latest version of both Open WebUI and Ollama. - [x] <del>I have included the browser console logs.</del> - [x] <del>I have included the Docker container logs.</del> - [x] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below. ## Expected Behavior: open-webui must server ## Actual Behavior: error during start: ``` Running migrations Error: No config file 'alembic.ini' found, or file has no '[alembic]' section ``` ## Description **Bug Summary:** ufter updating open-webui or clean installaton to v0.3.16 open-webui not starting with errors ## Reproduction Details **Steps to Reproduce:** in console ``` python -m venv venv venv\Scripts\activate pip install open-webui open-webui serve ``` ## Logs and Screenshots <details> <summary>Console output</summary> ``` E:\neuro\123>python -m venv venv E:\neuro\123>venv\Scripts\activate (venv) E:\neuro\123>pip install open-webui Collecting open-webui Downloading open_webui-0.3.16-py3-none-any.whl.metadata (16 kB) Collecting aiohttp==3.10.2 (from open-webui) Downloading aiohttp-3.10.2-cp311-cp311-win_amd64.whl.metadata (7.8 kB) Collecting alembic==1.13.2 (from open-webui) Downloading alembic-1.13.2-py3-none-any.whl.metadata (7.4 kB) Collecting anthropic (from open-webui) Downloading anthropic-0.34.1-py3-none-any.whl.metadata (18 kB) Collecting apscheduler==3.10.4 (from open-webui) Downloading APScheduler-3.10.4-py3-none-any.whl.metadata (5.7 kB) Collecting argon2-cffi==23.1.0 (from open-webui) Downloading argon2_cffi-23.1.0-py3-none-any.whl.metadata (5.2 kB) ..... ..... ..... Successfully installed Mako-1.3.5 MarkupSafe-2.1.5 Pillow-10.4.0 PyYAML-6.0.2 RTFDE-0.1.2 Shapely-2.0.6 Werkzeug-3.0.4 XlsxWriter-3.2.0 aiohappyeyeballs-2.4.0 aiohttp-3.10.2 aiosignal-1.3.1 alembic-1.13.2 annotated-types-0.7.0 anthropic-0.34.1 anyio-4.4.0 apscheduler-3.10.4 argon2-cffi-23.1.0 argon2-cffi-bindings-21.2.0 asgiref-3.8.1 attrs-24.2.0 authlib-1.3.1 av-12.3.0 backoff-2.2.1 bcrypt-4.2.0 beautifulsoup4-4.12.3 bidict-0.23.1 black-24.8.0 blinker-1.8.2 boto3-1.35.0 botocore-1.35.7 build-1.2.1 cachetools-5.5.0 certifi-2024.7.4 cffi-1.17.0 chardet-5.2.0 charset-normalizer-3.3.2 chroma-hnswlib-0.7.6 chromadb-0.5.5 click-8.1.7 colorama-0.4.6 colorclass-2.2.2 coloredlogs-15.0.1 compressed-rtf-1.0.6 cryptography-43.0.0 ctranslate2-4.3.1 dataclasses-json-0.6.7 deepdiff-8.0.0 defusedxml-0.7.1 deprecated-1.2.14 distro-1.9.0 dnspython-2.6.1 docker-7.1.0 docx2txt-0.8 duckduckgo-search-6.2.11 easygui-0.98.3 ebcdic-1.1.1 ecdsa-0.19.0 email_validator-2.2.0 emoji-2.12.1 et-xmlfile-1.1.0 extract-msg-0.49.0 fake-useragent-1.5.1 fastapi-0.111.0 fastapi-cli-0.0.5 faster-whisper-1.0.3 filelock-3.15.4 filetype-1.2.0 flask-3.0.3 flask-cors-4.0.1 flatbuffers-24.3.25 fonttools-4.53.1 fpdf2-2.7.9 frozenlist-1.4.1 fsspec-2024.6.1 google-ai-generativelanguage-0.6.6 google-api-core-2.19.2 google-api-python-client-2.142.0 google-auth-2.34.0 google-auth-httplib2-0.2.0 google-generativeai-0.7.2 googleapis-common-protos-1.65.0 greenlet-3.0.3 grpcio-1.66.0 grpcio-status-1.62.3 h11-0.14.0 httpcore-1.0.5 httplib2-0.22.0 httptools-0.6.1 httpx-0.27.2 huggingface-hub-0.24.6 humanfriendly-10.0 idna-3.8 importlib-metadata-8.0.0 importlib-resources-6.4.4 iniconfig-2.0.0 itsdangerous-2.2.0 jinja2-3.1.4 jiter-0.5.0 jmespath-1.0.1 joblib-1.4.2 jsonpatch-1.33 jsonpath-python-1.0.6 jsonpointer-3.0.0 kubernetes-30.1.0 langchain-0.2.14 langchain-chroma-0.1.2 langchain-community-0.2.12 langchain-core-0.2.35 langchain-text-splitters-0.2.2 langdetect-1.0.9 langfuse-2.44.0 langsmith-0.1.106 lark-1.1.9 lxml-5.3.0 markdown-3.7 markdown-it-py-3.0.0 marshmallow-3.22.0 mdurl-0.1.2 mmh3-4.1.0 monotonic-1.6 mpmath-1.3.0 msoffcrypto-tool-5.4.2 multidict-6.0.5 mypy-extensions-1.0.0 nest-asyncio-1.6.0 networkx-3.3 nltk-3.9.1 numpy-1.26.4 oauthlib-3.2.2 olefile-0.47 oletools-0.60.2 onnxruntime-1.19.0 open-webui-0.3.16 openai-1.42.0 opencv-python-4.10.0.84 opencv-python-headless-4.10.0.84 openpyxl-3.1.5 opentelemetry-api-1.26.0 opentelemetry-exporter-otlp-proto-common-1.26.0 opentelemetry-exporter-otlp-proto-grpc-1.26.0 opentelemetry-instrumentation-0.47b0 opentelemetry-instrumentation-asgi-0.47b0 opentelemetry-instrumentation-fastapi-0.47b0 opentelemetry-proto-1.26.0 opentelemetry-sdk-1.26.0 opentelemetry-semantic-conventions-0.47b0 opentelemetry-util-http-0.47b0 orderly-set-5.2.1 orjson-3.10.7 overrides-7.7.0 packaging-23.2 pandas-2.2.2 passlib-1.7.4 pathspec-0.12.1 pcodedmp-1.2.6 peewee-3.17.6 peewee-migrate-1.12.2 platformdirs-4.2.2 pluggy-1.5.0 posthog-3.6.0 primp-0.6.1 proto-plus-1.24.0 protobuf-4.25.4 psutil-6.0.0 psycopg2-binary-2.9.9 pyasn1-0.6.0 pyasn1-modules-0.4.0 pyclipper-1.3.0.post5 pycparser-2.22 pydantic-2.8.2 pydantic-core-2.20.1 pydub-0.25.1 pygments-2.18.0 pyjwt-2.9.0 pymongo-4.8.0 pymysql-1.1.1 pypandoc-1.13 pyparsing-3.1.4 pypdf-4.3.1 pypika-0.48.9 pyproject_hooks-1.1.0 pyreadline3-3.4.1 pytest-8.2.2 pytest-docker-3.1.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 python-engineio-4.9.1 python-iso639-2024.4.27 python-jose-3.3.0 python-magic-0.4.27 python-multipart-0.0.9 python-pptx-1.0.0 python-socketio-5.11.3 pytube-15.0.0 pytz-2024.1 pywin32-306 pyxlsb-1.0.10 rank-bm25-0.2.2 rapidfuzz-3.9.6 rapidocr-onnxruntime-1.3.24 red-black-tree-mod-1.20 redis-5.0.8 regex-2024.7.24 requests-2.32.3 requests-oauthlib-2.0.0 requests-toolbelt-1.0.0 rich-13.8.0 rsa-4.9 s3transfer-0.10.2 safetensors-0.4.4 scikit-learn-1.5.1 scipy-1.14.1 sentence-transformers-3.0.1 shellingham-1.5.4 simple-websocket-1.0.0 six-1.16.0 sniffio-1.3.1 soupsieve-2.6 sqlalchemy-2.0.32 starlette-0.37.2 sympy-1.13.2 tabulate-0.9.0 tenacity-8.5.0 threadpoolctl-3.5.0 tiktoken-0.7.0 tokenizers-0.19.1 torch-2.4.0 tqdm-4.66.5 transformers-4.44.2 typer-0.12.5 typing-extensions-4.12.2 typing-inspect-0.9.0 tzdata-2024.1 tzlocal-5.2 ujson-5.10.0 unstructured-0.15.7 unstructured-client-0.25.5 uritemplate-4.1.1 urllib3-2.2.2 uvicorn-0.30.6 validators-0.33.0 watchfiles-0.23.0 websocket-client-1.8.0 websockets-13.0 win-unicode-console-0.5 wrapt-1.16.0 wsproto-1.2.0 xlrd-2.0.1 yarl-1.9.4 youtube-transcript-api-0.6.2 zipp-3.20.1 [notice] A new release of pip is available: 24.0 -> 24.2 [notice] To update, run: python.exe -m pip install --upgrade pip (venv) E:\neuro\123>open-webui serve Loading WEBUI_SECRET_KEY from file, not provided as an environment variable. Generating a new secret key and saving it to E:\neuro\123\.webui_secret_key Loading WEBUI_SECRET_KEY from E:\neuro\123\.webui_secret_key E:\neuro\123\venv\Lib Running migrations Error: No config file 'alembic.ini' found, or file has no '[alembic]' section ┌────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────���────────────────────────┐ │ E:\neuro\123\venv\Lib\site-packages\sqlalchemy\engine\base.py:1967 in _exec_single_context │ │ │ │ 1964 │ │ │ │ │ │ │ evt_handled = True │ │ 1965 │ │ │ │ │ │ │ break │ │ 1966 │ │ │ │ if not evt_handled: │ │ > 1967 │ │ │ │ │ self.dialect.do_execute( │ │ 1968 │ │ │ │ │ │ cursor, str_statement, effective_parameters, context │ │ 1969 │ │ │ │ │ ) │ │ 1970 │ │ │ │ ┌───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────┐ │ │ │ context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0x000002253A930690> │ │ │ │ cursor = <sqlite3.Cursor object at 0x000002253AED6540> │ │ │ │ dialect = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x000002250A7926D0> │ │ │ │ effective_parameters = (1, 0) │ │ │ │ evt_handled = False │ │ │ │ parameters = [(1, 0)] │ │ │ │ self = <sqlalchemy.engine.base.Connection object at 0x000002253AEB7190> │ │ │ │ statement = <sqlalchemy.dialects.sqlite.base.SQLiteCompiler object at 0x000002253A81AFD0> │ │ │ │ str_statement = 'SELECT config.id AS config_id, config.data AS config_data, config.version AS con'+146 │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ E:\neuro\123\venv\Lib\site-packages\sqlalchemy\engine\default.py:941 in do_execute │ │ │ │ 938 │ │ cursor.executemany(statement, parameters) │ │ 939 │ │ │ 940 │ def do_execute(self, cursor, statement, parameters, context=None): │ │ > 941 │ │ cursor.execute(statement, parameters) │ │ 942 │ │ │ 943 │ def do_execute_no_params(self, cursor, statement, context=None): │ │ 944 │ │ cursor.execute(statement) │ │ │ │ ┌──────────────────────────────────────────────── locals ────────────────────────────────────────────────┐ │ │ │ context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0x000002253A930690> │ │ │ │ cursor = <sqlite3.Cursor object at 0x000002253AED6540> │ │ │ │ parameters = (1, 0) │ │ │ │ self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x000002250A7926D0> │ │ │ │ statement = 'SELECT config.id AS config_id, config.data AS config_data, config.version AS con'+146 │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ OperationalError: no such table: config The above exception was the direct cause of the following exception: ┌────────────────────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────────────────┐ │ E:\neuro\123\venv\Lib\site-packages\open_webui\__init__.py:43 in serve │ │ │ │ 40 │ │ │ │ "/usr/local/lib/python3.11/site-packages/nvidia/cudnn/lib", ┌───── locals ─────┐ │ │ 41 │ │ │ ] │ host = '0.0.0.0' │ │ │ 42 │ │ ) │ port = 8080 │ │ │ > 43 │ import main # we need set environment variables before importing main └──────────────────┘ │ │ 44 │ │ │ 45 │ uvicorn.run(main.app, host=host, port=port, forwarded_allow_ips="*") │ │ 46 │ │ │ │ E:\neuro\123\venv\Lib\site-packages\main.py:31 in <module> │ │ │ │ 28 │ │ 29 │ │ 30 from apps.socket.main import app as socket_app, get_event_emitter, get_event_call │ │ > 31 from apps.ollama.main import ( │ │ 32 │ app as ollama_app, │ │ 33 │ get_all_models as get_ollama_models, │ │ 34 │ generate_openai_chat_completion as generate_ollama_chat_completion, │ │ │ │ ┌────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────┐ │ │ │ aiohttp = <module 'aiohttp' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\aiohttp\\__init__.py'> │ │ │ │ asynccontextmanager = <function asynccontextmanager at 0x0000022502BBF920> │ │ │ │ base64 = <module 'base64' from 'E:\\neuro\\_python311\\Lib\\base64.py'> │ │ │ │ BaseHTTPMiddleware = <class 'starlette.middleware.base.BaseHTTPMiddleware'> │ │ │ │ CORSMiddleware = <class 'starlette.middleware.cors.CORSMiddleware'> │ │ │ │ Depends = <function Depends at 0x000002250828FF60> │ │ │ │ FastAPI = <class 'fastapi.applications.FastAPI'> │ │ │ │ File = <function File at 0x000002250828FEC0> │ │ │ │ Form = <function Form at 0x000002250828FE20> │ │ │ │ get_event_call = <function get_event_call at 0x000002250ABBF920> │ │ │ │ get_event_emitter = <function get_event_emitter at 0x000002250ABBF880> │ │ │ │ HTTPException = <class 'fastapi.exceptions.HTTPException'> │ │ │ │ inspect = <module 'inspect' from 'E:\\neuro\\_python311\\Lib\\inspect.py'> │ │ │ │ json = <module 'json' from 'E:\\neuro\\_python311\\Lib\\json\\__init__.py'> │ │ │ │ JSONResponse = <class 'starlette.responses.JSONResponse'> │ │ │ │ logging = <module 'logging' from 'E:\\neuro\\_python311\\Lib\\logging\\__init__.py'> │ │ │ │ mimetypes = <module 'mimetypes' from 'E:\\neuro\\_python311\\Lib\\mimetypes.py'> │ │ │ │ OAuth = <class 'authlib.integrations.starlette_client.OAuth'> │ │ │ │ Optional = typing.Optional │ │ │ │ os = <module 'os' (frozen)> │ │ │ │ RedirectResponse = <class 'starlette.responses.RedirectResponse'> │ │ │ │ Request = <class 'starlette.requests.Request'> │ │ │ │ requests = <module 'requests' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\requests\\__init__.py'> │ │ │ │ Response = <class 'starlette.responses.Response'> │ │ │ │ SessionMiddleware = <class 'starlette.middleware.sessions.SessionMiddleware'> │ │ │ │ shutil = <module 'shutil' from 'E:\\neuro\\_python311\\Lib\\shutil.py'> │ │ │ │ socket_app = <socketio.asgi.ASGIApp object at 0x00000225089D0810> │ │ │ │ StarletteHTTPException = <class 'starlette.exceptions.HTTPException'> │ │ │ │ StaticFiles = <class 'starlette.staticfiles.StaticFiles'> │ │ │ │ status = <module 'starlette.status' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\starlette\\status.py'> │ │ │ │ StreamingResponse = <class 'starlette.responses.StreamingResponse'> │ │ │ │ sys = <module 'sys' (built-in)> │ │ │ │ text = <function text at 0x000002250887F920> │ │ │ │ time = <module 'time' (built-in)> │ │ │ │ UploadFile = <class 'fastapi.datastructures.UploadFile'> │ │ │ │ UserInfo = <class 'authlib.oidc.core.claims.UserInfo'> │ │ │ │ uuid = <module 'uuid' from 'E:\\neuro\\_python311\\Lib\\uuid.py'> │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ E:\neuro\123\venv\Lib\site-packages\apps\ollama\main.py:35 in <module> │ │ │ │ 32 │ get_admin_user, │ │ 33 ) │ │ 34 │ │ > 35 from config import ( │ │ 36 │ SRC_LOG_LEVELS, │ │ 37 │ OLLAMA_BASE_URLS, │ │ 38 │ ENABLE_OLLAMA_API, │ │ │ │ ┌──────────────────────────────────────────────────── locals ────────────────────────────────────────────────────┐ │ │ │ aiohttp = <module 'aiohttp' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\aiohttp\\__init__.py'> │ │ │ │ asyncio = <module 'asyncio' from 'E:\\neuro\\_python311\\Lib\\asyncio\\__init__.py'> │ │ │ │ BackgroundTask = <class 'starlette.background.BackgroundTask'> │ │ │ │ BaseModel = <class 'pydantic.main.BaseModel'> │ │ │ │ ConfigDict = <class 'pydantic.config.ConfigDict'> │ │ │ │ CORSMiddleware = <class 'starlette.middleware.cors.CORSMiddleware'> │ │ │ │ Depends = <function Depends at 0x000002250828FF60> │ │ │ │ ERROR_MESSAGES = <enum 'ERROR_MESSAGES'> │ │ │ │ FastAPI = <class 'fastapi.applications.FastAPI'> │ │ │ │ File = <function File at 0x000002250828FEC0> │ │ │ │ get_admin_user = <function get_admin_user at 0x000002250ABBF560> │ │ │ │ get_verified_user = <function get_verified_user at 0x000002250ABBF4C0> │ │ │ │ HTTPException = <class 'fastapi.exceptions.HTTPException'> │ │ │ │ json = <module 'json' from 'E:\\neuro\\_python311\\Lib\\json\\__init__.py'> │ │ │ │ logging = <module 'logging' from 'E:\\neuro\\_python311\\Lib\\logging\\__init__.py'> │ │ │ │ Models = <apps.webui.models.models.ModelsTable object at 0x000002250AC09F90> │ │ │ │ Optional = typing.Optional │ │ │ │ os = <module 'os' (frozen)> │ │ │ │ random = <module 'random' from 'E:\\neuro\\_python311\\Lib\\random.py'> │ │ │ │ re = <module 're' from 'E:\\neuro\\_python311\\Lib\\re\\__init__.py'> │ │ │ │ Request = <class 'starlette.requests.Request'> │ │ │ │ requests = <module 'requests' from 'E:\\neuro\\123\\venv\\Lib\\site-packages\\requests\\__init__.py'> │ │ │ │ StreamingResponse = <class 'starlette.responses.StreamingResponse'> │ │ │ │ time = <module 'time' (built-in)> │ │ │ │ Union = typing.Union │ │ │ │ UploadFile = <class 'fastapi.datastructures.UploadFile'> │ │ │ │ urlparse = <function urlparse at 0x0000022502EFDB20> │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ E:\neuro\123\venv\Lib\site-packages\config.py:189 in <module> │ │ │ │ 186 │ │ return config_entry.data if config_entry else DEFAULT_CONFIG │ │ 187 │ │ 188 │ │ > 189 CONFIG_DATA = get_config() │ │ 190 │ │ 191 │ │ 192 def get_config_value(config_path: str): │ │ │ │ ┌───────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────┐ │ │ │ BACKEND_DIR = WindowsPath('E:/neuro/123/venv/Lib/site-packages') │ │ │ │ Base = <class 'sqlalchemy.orm.decl_api.Base'> │ │ ...... ...... ...... OperationalError: (sqlite3.OperationalError) no such table: config [SQL: SELECT config.id AS config_id, config.data AS config_data, config.version AS config_version, config.created_at AS config_created_at, config.updated_at AS config_updated_at FROM config ORDER BY config.id DESC LIMIT ? OFFSET ?] [parameters: (1, 0)] (Background on this error at: https://sqlalche.me/e/20/e3q8) (venv) E:\neuro\123> ``` </details>
Author
Owner

@gsm1258 commented on GitHub (Aug 28, 2024):

Don't download that files , windows report that it's virus files!!!

<!-- gh-comment-id:2314612815 --> @gsm1258 commented on GitHub (Aug 28, 2024): Don't download that files , windows report that it's virus files!!!
Author
Owner

@atbradley commented on GitHub (Aug 28, 2024):

I'm seeing the same issue on RHEL 9 and Mac OS 14.

<!-- gh-comment-id:2315265055 --> @atbradley commented on GitHub (Aug 28, 2024): I'm seeing the same issue on RHEL 9 and Mac OS 14.
Author
Owner

@AeneasZhu commented on GitHub (Aug 28, 2024):

Same issue on my PC. I temporarily downgraded it to 0.3.15

<!-- gh-comment-id:2315279993 --> @AeneasZhu commented on GitHub (Aug 28, 2024): Same issue on my PC. I temporarily downgraded it to 0.3.15
Author
Owner

@tjbck commented on GitHub (Aug 28, 2024):

Closing in favour of #4964

<!-- gh-comment-id:2315450361 --> @tjbck commented on GitHub (Aug 28, 2024): Closing in favour of #4964
Author
Owner

@Family2002 commented on GitHub (Aug 30, 2024):

right I choose 0.3.15

<!-- gh-comment-id:2320235812 --> @Family2002 commented on GitHub (Aug 30, 2024): right I choose 0.3.15
Author
Owner

@peacerman commented on GitHub (Sep 4, 2024):

I have the same error.
ubuntu
clean install

pip install open-webui
open-webui serve

Running migrations
Error: No config file 'alembic.ini' found, or file has no '[alembic]' section

<!-- gh-comment-id:2329291256 --> @peacerman commented on GitHub (Sep 4, 2024): I have the same error. ubuntu clean install pip install open-webui open-webui serve Running migrations Error: No config file 'alembic.ini' found, or file has no '[alembic]' section
Author
Owner

@peacerman commented on GitHub (Sep 4, 2024):

I have the same error.
ubuntu
clean install

pip install open-webui
open-webui serve

Running migrations
Error: No config file 'alembic.ini' found, or file has no '[alembic]' section

<!-- gh-comment-id:2329294490 --> @peacerman commented on GitHub (Sep 4, 2024): I have the same error. ubuntu clean install pip install open-webui open-webui serve Running migrations Error: No config file 'alembic.ini' found, or file has no '[alembic]' section
Author
Owner

@FilippiChristian commented on GitHub (Sep 4, 2024):

The same here :(
(Debian 12)

<!-- gh-comment-id:2329300461 --> @FilippiChristian commented on GitHub (Sep 4, 2024): The same here :( (Debian 12)
Author
Owner

@shadowfaxproject commented on GitHub (Sep 4, 2024):

Looks like it's fixed in 0.3.18 per https://github.com/open-webui/open-webui/issues/4964#issuecomment-2329535414

<!-- gh-comment-id:2329742223 --> @shadowfaxproject commented on GitHub (Sep 4, 2024): Looks like it's fixed in 0.3.18 per https://github.com/open-webui/open-webui/issues/4964#issuecomment-2329535414
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#117116