Can't install due to crash loop - sqlite3.OperationalError: no such table: config #65

Closed
opened 2026-02-15 19:15:54 -05:00 by yindo · 6 comments
Owner

Originally created by @ftab on GitHub (Feb 18, 2025).

Freshly installed chart open-webui-5.14.0 on an on-premises kubernetes cluster (version 1.23.7)

Pod goes into CrashLoopBackOff

Logs:

Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Generating WEBUI_SECRET_KEY
Loading WEBUI_SECRET_KEY from .webui_secret_key
/app/backend/open_webui
/app/backend
/app
Running migrations
Error: cannot import name 'override_static' from partially initialized module 'open_webui.config' (most likely due to a circular import) (/app/backend/open_webui/config.py)
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: config

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

Traceback (most recent call last):
  File "/usr/local/bin/uvicorn", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 410, in main
    run(
  File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 577, in run
    server.run()
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in 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 69, in serve
    await self._serve(sockets)
  File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
    config.load()
  File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 434, 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 48, in <module>
    from open_webui.socket.main import (
  File "/app/backend/open_webui/socket/main.py", line 8, in <module>
    from open_webui.models.channels import Channels
  File "/app/backend/open_webui/models/channels.py", line 7, in <module>
    from open_webui.utils.access_control import has_access
  File "/app/backend/open_webui/utils/access_control.py", line 6, in <module>
    from open_webui.config import DEFAULT_USER_PERMISSIONS
  File "/app/backend/open_webui/config.py", line 165, in <module>
    CONFIG_DATA = get_config()
                  ^^^^^^^^^^^^
  File "/app/backend/open_webui/config.py", line 161, in get_config
    config_entry = db.query(Config).order_by(Config.id.desc()).first()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2728, in first
    return self.limit(1)._iter().first()  # type: ignore
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2827, in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
                                                  ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2247, in _execute_internal
    result: Result[Any] = compile_state_cls.orm_execute_statement(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement
    result = conn.execute(
             ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
    return meth(
           ^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.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)

Values:

nameOverride: ""
namespaceOverride: ""

ollama:
  # -- Automatically install Ollama Helm chart from https://otwld.github.io/ollama-helm/. Use [Helm Values](https://github.com/otwld/ollama-helm/#helm-values) to configure
  enabled: false
  # -- If enabling embedded Ollama, update fullnameOverride to your desired Ollama name value, or else it will use the default ollama.name value from the Ollama chart
  fullnameOverride: "open-webui-ollama"
  # -- Example Ollama configuration with nvidia GPU enabled, automatically downloading a model, and deploying a PVC for model persistence
  # ollama:
  #   gpu:
  #     enabled: true
  #     type: 'nvidia'
  #     number: 1
  #   models:
  #     - llama3
  # runtimeClassName: nvidia
  # persistentVolume:
  #   enabled: true
  #   volumeName: "example-pre-existing-pv-created-by-smb-csi"

pipelines:
  # -- Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines
  enabled: false
  # -- This section can be used to pass required environment variables to your pipelines (e.g. Langfuse hostname)
  extraEnvVars: []

tika:
  # -- Automatically install Apache Tika to extend Open WebUI
  enabled: false

# -- A list of Ollama API endpoints. These can be added in lieu of automatically installing the Ollama Helm chart, or in addition to it.
ollamaUrls: [http://192.168.1.93:1234/]

websocket:
  # -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT`
  enabled: true
  # -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default)
  manager: redis
  # -- Specifies the URL of the Redis instance for websocket communication. Template with `redis://[:<password>@]<hostname>:<port>/<db>`
  url: redis://open-webui-redis:6379/0
  # -- Deploys a redis
  redis:
    # -- Enable redis installation
    enabled: true
    # -- Redis name
    name: open-webui-redis
    # -- Redis labels
    labels: {}
    # -- Redis annotations
    annotations: {}
    # -- Redis image
    image:
      repository: redis
      tag: 7.4.2-alpine3.21
      pullPolicy: IfNotPresent
    # -- Redis command (overrides default)
    command: []
    # -- Redis arguments (overrides default)
    args: []
    # -- Redis resources
    resources: {}
    # -- Redis service
    service:
      # -- Redis container/target port
      containerPort: 6379
      # -- Redis service type
      type: ClusterIP
      # -- Redis service labels
      labels: {}
      # -- Redis service annotations
      annotations: {}
      # -- Redis service port
      port: 6379
      # -- Redis service node port. Valid only when type is `NodePort`
      nodePort: ""

# -- Deploys a Redis cluster with subchart 'redis' from bitnami
redis-cluster:
  # -- Enable Redis installation
  enabled: false
  # -- Redis cluster name (recommended to be 'open-webui-redis')
  # - In this case, redis url will be 'redis://open-webui-redis-master:6379/0' or 'redis://[:<password>@]open-webui-redis-master:6379/0'
  fullnameOverride: open-webui-redis
  # -- Redis Authentication
  auth:
    # -- Enable Redis authentication (disabled by default). For your security, we strongly suggest that you switch to 'auth.enabled=true'
    enabled: false
  # -- Replica configuration for the Redis cluster
  replica:
    # -- Number of Redis replica instances
    replicaCount: 3

# -- Value of cluster domain
clusterDomain: cluster.local

annotations: {}
podAnnotations: {}
podLabels: {}
replicaCount: 1
# -- Strategy for updating the workload manager: deployment or statefulset
strategy: {}
# -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui
image:
  repository: ghcr.io/open-webui/open-webui
  tag: ""
  pullPolicy: "IfNotPresent"

serviceAccount:
  enable: true
  name: ""
  annotations: {}
  automountServiceAccountToken: false

# -- Configure imagePullSecrets to use private registry
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry>
imagePullSecrets: []
# imagePullSecrets:
# - name: myRegistryKeySecretName

# -- Probe for liveness of the Open WebUI container
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
livenessProbe: {}
# livenessProbe:
#   httpGet:
#     path: /health
#     port: http
#   failureThreshold: 1
#   periodSeconds: 10

# -- Probe for readiness of the Open WebUI container
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
readinessProbe: {}
# readinessProbe:
#   httpGet:
#     path: /health/db
#     port: http
#   failureThreshold: 1
#   periodSeconds: 10

# -- Probe for startup of the Open WebUI container
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes>
startupProbe: {}
# startupProbe:
#   httpGet:
#     path: /health
#     port: http
#   initialDelaySeconds: 30
#   periodSeconds: 5
#   failureThreshold: 20

resources: {}

copyAppData:
  resources: {}

managedCertificate:
  enabled: false
  name: "mydomain-chat-cert"  # You can override this name if needed
  domains:
    - chat.example.com # update to your real domain

ingress:
  enabled: true
  # -- Use appropriate annotations for your Ingress controller, e.g., for NGINX:  
  annotations: 
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/tls-acme: "true"
    # nginx.ingress.kubernetes.io/rewrite-target: / 
  host: "skynet.mydomain.com"  # update to your real domain 
  additionalHosts: []
  tls: true
  existingSecret: ""
persistence:
  enabled: true
  size: 100Gi
  # -- Use existingClaim if you want to re-use an existing Open WebUI PVC instead of creating a new one
  existingClaim: ""
  # -- Subdirectory of Open WebUI PVC to mount. Useful if root directory is not empty.
  subPath: ""
  # -- If using multiple replicas, you must update accessModes to ReadWriteMany
  accessModes:
    - ReadWriteOnce
  storageClass: ""
  selector: {}
  annotations: {}

# -- Node labels for pod assignment.
nodeSelector: {}

# -- Tolerations for pod assignment
tolerations: []

# -- Affinity for pod assignment
affinity: {}

# -- Topology Spread Constraints for pod assignment
topologySpreadConstraints: []

# -- Service values to expose Open WebUI pods to cluster
service:
  type: LoadBalancer   # changed from ClusterIP to LoadBalancer for use with MetalLB
  annotations: {}
  port: 80
  containerPort: 8080
  nodePort: ""
  labels: {}
  loadBalancerClass: ""

# -- OpenAI base API URL to use. Defaults to the Pipelines service endpoint when Pipelines are enabled, and "https://api.openai.com/v1" if Pipelines are not enabled and this value is blank
openaiBaseApiUrl: "http://192.168.1.93:1234/v1"

# -- Env vars added to the Open WebUI deployment. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/
extraEnvVars:
  # -- Default API key value for Pipelines. Should be updated in a production deployment, or be changed to the required API key if not using Pipelines
  - name: OPENAI_API_KEY
    value: "insertgreatapikeyhere"
  # valueFrom:
  #   secretKeyRef:
  #     name: pipelines-api-key
  #     key: api-key
  # - name: OPENAI_API_KEY
  #   valueFrom:
  #     secretKeyRef:
  #       name: openai-api-key
  #       key: api-key
  # - name: OLLAMA_DEBUG
  #   value: "1"

# -- Configure container volume mounts
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/>
volumeMounts:
  initContainer: []
  # - name: ""
  #   mountPath: ""
  container: []
  # - name: ""
  #   mountPath: ""

# -- Configure pod volumes
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/>
volumes: []
# - name: ""
#   configMap:
#     name: ""
# - name: ""
#   emptyDir: {}

# -- Configure pod security context
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe>
podSecurityContext:
  {}
  # fsGroupChangePolicy: Always
  # sysctls: []
  # supplementalGroups: []
  # fsGroup: 1001


# -- Configure container security context
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe>
containerSecurityContext:
  {}
  # runAsUser: 1001
  # runAsGroup: 1001
  # runAsNonRoot: true
  # privileged: false
  # allowPrivilegeEscalation: false
  # readOnlyRootFilesystem: false
  # capabilities:
  #   drop:
  #     - ALL
  # seccompProfile:
  #   type: "RuntimeDefault"

# -- Extra resources to deploy with Open WebUI
extraResources:
  []
  # - apiVersion: v1
  #   kind: ConfigMap
  #   metadata:
  #     name: example-configmap
  #   data:
  #     example-key: example-value

What am I doing wrong?

Originally created by @ftab on GitHub (Feb 18, 2025). Freshly installed chart open-webui-5.14.0 on an on-premises kubernetes cluster (version 1.23.7) Pod goes into CrashLoopBackOff Logs: ``` Loading WEBUI_SECRET_KEY from file, not provided as an environment variable. Generating WEBUI_SECRET_KEY Loading WEBUI_SECRET_KEY from .webui_secret_key /app/backend/open_webui /app/backend /app Running migrations Error: cannot import name 'override_static' from partially initialized module 'open_webui.config' (most likely due to a circular import) (/app/backend/open_webui/config.py) Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute cursor.execute(statement, parameters) sqlite3.OperationalError: no such table: config The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/bin/uvicorn", line 10, in <module> sys.exit(main()) ^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__ return self.main(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke return ctx.invoke(self.callback, **ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke return __callback(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 410, in main run( File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 577, in run server.run() File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in 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 69, in serve await self._serve(sockets) File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve config.load() File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 434, 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 48, in <module> from open_webui.socket.main import ( File "/app/backend/open_webui/socket/main.py", line 8, in <module> from open_webui.models.channels import Channels File "/app/backend/open_webui/models/channels.py", line 7, in <module> from open_webui.utils.access_control import has_access File "/app/backend/open_webui/utils/access_control.py", line 6, in <module> from open_webui.config import DEFAULT_USER_PERMISSIONS File "/app/backend/open_webui/config.py", line 165, in <module> CONFIG_DATA = get_config() ^^^^^^^^^^^^ File "/app/backend/open_webui/config.py", line 161, in get_config config_entry = db.query(Config).order_by(Config.id.desc()).first() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2728, in first return self.limit(1)._iter().first() # type: ignore ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2827, in _iter result: Union[ScalarResult[_T], Result[_T]] = self.session.execute( ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2362, in execute return self._execute_internal( ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2247, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement result = conn.execute( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1418, in execute return meth( ^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection return connection._execute_clauseelement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement ret = self._execute_context( ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context return self._exec_single_context( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context self._handle_dbapi_exception( File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.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) ``` Values: ```yaml nameOverride: "" namespaceOverride: "" ollama: # -- Automatically install Ollama Helm chart from https://otwld.github.io/ollama-helm/. Use [Helm Values](https://github.com/otwld/ollama-helm/#helm-values) to configure enabled: false # -- If enabling embedded Ollama, update fullnameOverride to your desired Ollama name value, or else it will use the default ollama.name value from the Ollama chart fullnameOverride: "open-webui-ollama" # -- Example Ollama configuration with nvidia GPU enabled, automatically downloading a model, and deploying a PVC for model persistence # ollama: # gpu: # enabled: true # type: 'nvidia' # number: 1 # models: # - llama3 # runtimeClassName: nvidia # persistentVolume: # enabled: true # volumeName: "example-pre-existing-pv-created-by-smb-csi" pipelines: # -- Automatically install Pipelines chart to extend Open WebUI functionality using Pipelines: https://github.com/open-webui/pipelines enabled: false # -- This section can be used to pass required environment variables to your pipelines (e.g. Langfuse hostname) extraEnvVars: [] tika: # -- Automatically install Apache Tika to extend Open WebUI enabled: false # -- A list of Ollama API endpoints. These can be added in lieu of automatically installing the Ollama Helm chart, or in addition to it. ollamaUrls: [http://192.168.1.93:1234/] websocket: # -- Enables websocket support in Open WebUI with env `ENABLE_WEBSOCKET_SUPPORT` enabled: true # -- Specifies the websocket manager to use with env `WEBSOCKET_MANAGER`: redis (default) manager: redis # -- Specifies the URL of the Redis instance for websocket communication. Template with `redis://[:<password>@]<hostname>:<port>/<db>` url: redis://open-webui-redis:6379/0 # -- Deploys a redis redis: # -- Enable redis installation enabled: true # -- Redis name name: open-webui-redis # -- Redis labels labels: {} # -- Redis annotations annotations: {} # -- Redis image image: repository: redis tag: 7.4.2-alpine3.21 pullPolicy: IfNotPresent # -- Redis command (overrides default) command: [] # -- Redis arguments (overrides default) args: [] # -- Redis resources resources: {} # -- Redis service service: # -- Redis container/target port containerPort: 6379 # -- Redis service type type: ClusterIP # -- Redis service labels labels: {} # -- Redis service annotations annotations: {} # -- Redis service port port: 6379 # -- Redis service node port. Valid only when type is `NodePort` nodePort: "" # -- Deploys a Redis cluster with subchart 'redis' from bitnami redis-cluster: # -- Enable Redis installation enabled: false # -- Redis cluster name (recommended to be 'open-webui-redis') # - In this case, redis url will be 'redis://open-webui-redis-master:6379/0' or 'redis://[:<password>@]open-webui-redis-master:6379/0' fullnameOverride: open-webui-redis # -- Redis Authentication auth: # -- Enable Redis authentication (disabled by default). For your security, we strongly suggest that you switch to 'auth.enabled=true' enabled: false # -- Replica configuration for the Redis cluster replica: # -- Number of Redis replica instances replicaCount: 3 # -- Value of cluster domain clusterDomain: cluster.local annotations: {} podAnnotations: {} podLabels: {} replicaCount: 1 # -- Strategy for updating the workload manager: deployment or statefulset strategy: {} # -- Open WebUI image tags can be found here: https://github.com/open-webui/open-webui image: repository: ghcr.io/open-webui/open-webui tag: "" pullPolicy: "IfNotPresent" serviceAccount: enable: true name: "" annotations: {} automountServiceAccountToken: false # -- Configure imagePullSecrets to use private registry # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry> imagePullSecrets: [] # imagePullSecrets: # - name: myRegistryKeySecretName # -- Probe for liveness of the Open WebUI container # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> livenessProbe: {} # livenessProbe: # httpGet: # path: /health # port: http # failureThreshold: 1 # periodSeconds: 10 # -- Probe for readiness of the Open WebUI container # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> readinessProbe: {} # readinessProbe: # httpGet: # path: /health/db # port: http # failureThreshold: 1 # periodSeconds: 10 # -- Probe for startup of the Open WebUI container # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes> startupProbe: {} # startupProbe: # httpGet: # path: /health # port: http # initialDelaySeconds: 30 # periodSeconds: 5 # failureThreshold: 20 resources: {} copyAppData: resources: {} managedCertificate: enabled: false name: "mydomain-chat-cert" # You can override this name if needed domains: - chat.example.com # update to your real domain ingress: enabled: true # -- Use appropriate annotations for your Ingress controller, e.g., for NGINX: annotations: kubernetes.io/ingress.class: "nginx" kubernetes.io/tls-acme: "true" # nginx.ingress.kubernetes.io/rewrite-target: / host: "skynet.mydomain.com" # update to your real domain additionalHosts: [] tls: true existingSecret: "" persistence: enabled: true size: 100Gi # -- Use existingClaim if you want to re-use an existing Open WebUI PVC instead of creating a new one existingClaim: "" # -- Subdirectory of Open WebUI PVC to mount. Useful if root directory is not empty. subPath: "" # -- If using multiple replicas, you must update accessModes to ReadWriteMany accessModes: - ReadWriteOnce storageClass: "" selector: {} annotations: {} # -- Node labels for pod assignment. nodeSelector: {} # -- Tolerations for pod assignment tolerations: [] # -- Affinity for pod assignment affinity: {} # -- Topology Spread Constraints for pod assignment topologySpreadConstraints: [] # -- Service values to expose Open WebUI pods to cluster service: type: LoadBalancer # changed from ClusterIP to LoadBalancer for use with MetalLB annotations: {} port: 80 containerPort: 8080 nodePort: "" labels: {} loadBalancerClass: "" # -- OpenAI base API URL to use. Defaults to the Pipelines service endpoint when Pipelines are enabled, and "https://api.openai.com/v1" if Pipelines are not enabled and this value is blank openaiBaseApiUrl: "http://192.168.1.93:1234/v1" # -- Env vars added to the Open WebUI deployment. Most up-to-date environment variables can be found here: https://docs.openwebui.com/getting-started/env-configuration/ extraEnvVars: # -- Default API key value for Pipelines. Should be updated in a production deployment, or be changed to the required API key if not using Pipelines - name: OPENAI_API_KEY value: "insertgreatapikeyhere" # valueFrom: # secretKeyRef: # name: pipelines-api-key # key: api-key # - name: OPENAI_API_KEY # valueFrom: # secretKeyRef: # name: openai-api-key # key: api-key # - name: OLLAMA_DEBUG # value: "1" # -- Configure container volume mounts # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/> volumeMounts: initContainer: [] # - name: "" # mountPath: "" container: [] # - name: "" # mountPath: "" # -- Configure pod volumes # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/> volumes: [] # - name: "" # configMap: # name: "" # - name: "" # emptyDir: {} # -- Configure pod security context # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe> podSecurityContext: {} # fsGroupChangePolicy: Always # sysctls: [] # supplementalGroups: [] # fsGroup: 1001 # -- Configure container security context # ref: <https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-containe> containerSecurityContext: {} # runAsUser: 1001 # runAsGroup: 1001 # runAsNonRoot: true # privileged: false # allowPrivilegeEscalation: false # readOnlyRootFilesystem: false # capabilities: # drop: # - ALL # seccompProfile: # type: "RuntimeDefault" # -- Extra resources to deploy with Open WebUI extraResources: [] # - apiVersion: v1 # kind: ConfigMap # metadata: # name: example-configmap # data: # example-key: example-value ``` What am I doing wrong?
yindo closed this issue 2026-02-15 19:15:54 -05:00
Author
Owner

@jyje commented on GitHub (Feb 18, 2025):

Hello.

I see sqlite3.OperationalError: no such table: config and it means that db migration went wrong associated with the websocket function.
I guess that you upgraded the opwn-webui chart recently. If so, could you tell us previous version of the chart?

@jyje commented on GitHub (Feb 18, 2025): Hello. I see `sqlite3.OperationalError: no such table: config` and it means that db migration went wrong associated with the websocket function. I guess that you upgraded the opwn-webui chart recently. If so, could you tell us previous version of the chart?
Author
Owner

@ftab commented on GitHub (Feb 18, 2025):

This is a fresh install, I didn't have it previously

@ftab commented on GitHub (Feb 18, 2025): This is a fresh install, I didn't have it previously
Author
Owner

@westbrook-ai commented on GitHub (Feb 18, 2025):

This was an issue with version 0.5.13 of Open WebUI. I'll get 0.5.14 in the chart later today, but for now you can fix by updating the image tag value to 0.5.14

@westbrook-ai commented on GitHub (Feb 18, 2025): This was an issue with version 0.5.13 of Open WebUI. I'll get 0.5.14 in the chart later today, but for now you can fix by updating the image tag value to 0.5.14
Author
Owner

@jyje commented on GitHub (Feb 18, 2025):

  • @0xThresh I made a PR for 0.5.14 #174, please review this
  • @ftab After merging #174, please try again
@jyje commented on GitHub (Feb 18, 2025): - @0xThresh I made a PR for 0.5.14 #174, please review this - @ftab After merging #174, please try again
Author
Owner

@ftab commented on GitHub (Feb 18, 2025):

Setting the image tag to 0.5.14 worked for me. You're awesome.

@ftab commented on GitHub (Feb 18, 2025): Setting the image tag to 0.5.14 worked for me. You're awesome.
Author
Owner

@westbrook-ai commented on GitHub (Feb 18, 2025):

Done, thank you @jyje!

@westbrook-ai commented on GitHub (Feb 18, 2025): Done, thank you @jyje!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: open-webui/helm-charts#65