[GH-ISSUE #15984] issue: PersistentConfig appears to not be persisten #33271

Closed
opened 2026-04-25 07:11:46 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @mymro on GitHub (Jul 24, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15984

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.18

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

PersistenConfig as per the documentation should be saved to the DB.

Actual Behavior

However this does not to appear to be the case. Most of the PersistenConfig values set through Env are not stored in the SQLite DB

Steps to Reproduce

Set a PersistenConfig through the Environment variables.
Open the DB and check what was stored

Logs & Screenshots

I have set ENABLE_OAUTH_SIGNUP in the Env, but it is not in the database. See below.

I have also had a look at the code and it appears most are really never saved. There is a section in the AppConfig class that appears to be concerned whit this, but it appears to be wrong. It only saves, if the Object is not a PersistenConfig:

Image

Config Json from the DB redacted:

{
  "version": 0,
  "ui": {
    "enable_signup": true,
    "default_user_role": "user",
    "enable_community_sharing": true,
    "enable_message_rating": true,
    "enable_user_webhooks": true,
    "pending_user_overlay_title": "",
    "pending_user_overlay_content": "",
    "watermark": "",
    "default_models": "GPT-4o",
    "model_order_list": [
      "GPT-4.1",
      "GPT-4o"
    ]
  },
  "ollama": {
    "enable": false,
    "base_urls": [
      "http://host.docker.internal:11434"
    ],
    "api_configs": {
      "0": {}
    }
  },
  "direct": {
    "enable": false
  },
  "models": {
    "base_models_cache": false
  },
  "openai": {
    "enable": true,
    "api_base_urls": [
      "http://litellm:4000"
    ],
    "api_keys": [
      ""
    ],
    "api_configs": {
      "0": {
        "enable": true,
        "tags": [],
        "prefix_id": "",
        "model_ids": [],
        "connection_type": "external"
      }
    }
  },
  "audio": {
    "tts": {
      "openai": {
        "api_base_url": "https://api.openai.com/v1",
        "api_key": ""
      },
      "api_key": "",
      "engine": "azure",
      "model": "",
      "voice": "de-DE-FlorianMultilingualNeural",
      "split_on": "punctuation",
      "azure": {
        "speech_region": "",
        "speech_base_url": "",
        "speech_output_format": "audio-48khz-96kbitrate-mono-mp3"
      }
    },
    "stt": {
      "openai": {
        "api_base_url": "https://api.openai.com/v1",
        "api_key": ""
      },
      "engine": "azure",
      "model": "",
      "supported_content_types": [
        ""
      ],
      "whisper_model": "base",
      "deepgram": {
        "api_key": ""
      },
      "azure": {
        "api_key": "",
        "region": "",
        "locales": "",
        "base_url": "",
        "max_speakers": ""
      }
    }
  },
  "webhook_url": "",
  "auth": {
    "admin": {
      "show": true
    },
    "api_key": {
      "enable": true,
      "endpoint_restrictions": false,
      "allowed_endpoints": ""
    },
    "jwt_expiry": "5h"
  },
  "webui": {
    "url": ""
  },
  "channels": {
    "enable": false
  },
  "notes": {
    "enable": true
  },
  "ldap": {
    "enable": false
  }
}

Relevant docker log section

openwebui-1  | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
openwebui-1  | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
openwebui-1  | INFO  [open_webui.env] 'ENABLE_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_API_KEY_ENDPOINT_RESTRICTIONS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'API_KEY_ALLOWED_ENDPOINTS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'JWT_EXPIRES_IN' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_DIRECT_CONNECTIONS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_OLLAMA_API' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'OLLAMA_BASE_URLS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'OLLAMA_API_CONFIGS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_OPENAI_API' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'OPENAI_API_KEYS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'OPENAI_API_BASE_URLS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'OPENAI_API_CONFIGS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_BASE_MODELS_CACHE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'WEBUI_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_SIGNUP' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'DEFAULT_MODELS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'MODEL_ORDER_LIST' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'DEFAULT_USER_ROLE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'PENDING_USER_OVERLAY_TITLE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'PENDING_USER_OVERLAY_CONTENT' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'RESPONSE_WATERMARK' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_CHANNELS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_NOTES' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'WEBHOOK_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_COMMUNITY_SHARING' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_MESSAGE_RATING' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_USER_WEBHOOKS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'SHOW_ADMIN_DETAILS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
openwebui-1  | INFO  [open_webui.env] 'WHISPER_MODEL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'DEEPGRAM_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_OPENAI_API_BASE_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_OPENAI_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_ENGINE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_MODEL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_SUPPORTED_CONTENT_TYPES' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_AZURE_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_AZURE_REGION' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_AZURE_LOCALES' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_AZURE_BASE_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_STT_AZURE_MAX_SPEAKERS' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_OPENAI_API_BASE_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_OPENAI_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_API_KEY' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_ENGINE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_MODEL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_VOICE' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_SPLIT_ON' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_REGION' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_BASE_URL' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT' loaded from the latest database entry
openwebui-1  | INFO  [open_webui.env] 'ENABLE_LDAP' loaded from the latest database entry
openwebui-1  | WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.

Additional Information

No response

Originally created by @mymro on GitHub (Jul 24, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/15984 ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.18 ### 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 PersistenConfig as per the documentation should be saved to the DB. ### Actual Behavior However this does not to appear to be the case. Most of the PersistenConfig values set through Env are not stored in the SQLite DB ### Steps to Reproduce Set a PersistenConfig through the Environment variables. Open the DB and check what was stored ### Logs & Screenshots I have set ENABLE_OAUTH_SIGNUP in the Env, but it is not in the database. See below. I have also had a look at the code and it appears most are really never saved. There is a section in the AppConfig class that appears to be concerned whit this, but it appears to be wrong. It only saves, if the Object is not a PersistenConfig: <img width="1031" height="226" alt="Image" src="https://github.com/user-attachments/assets/ea556c72-c352-4c36-aeab-c24f5673d7f2" /> Config Json from the DB redacted: ```json { "version": 0, "ui": { "enable_signup": true, "default_user_role": "user", "enable_community_sharing": true, "enable_message_rating": true, "enable_user_webhooks": true, "pending_user_overlay_title": "", "pending_user_overlay_content": "", "watermark": "", "default_models": "GPT-4o", "model_order_list": [ "GPT-4.1", "GPT-4o" ] }, "ollama": { "enable": false, "base_urls": [ "http://host.docker.internal:11434" ], "api_configs": { "0": {} } }, "direct": { "enable": false }, "models": { "base_models_cache": false }, "openai": { "enable": true, "api_base_urls": [ "http://litellm:4000" ], "api_keys": [ "" ], "api_configs": { "0": { "enable": true, "tags": [], "prefix_id": "", "model_ids": [], "connection_type": "external" } } }, "audio": { "tts": { "openai": { "api_base_url": "https://api.openai.com/v1", "api_key": "" }, "api_key": "", "engine": "azure", "model": "", "voice": "de-DE-FlorianMultilingualNeural", "split_on": "punctuation", "azure": { "speech_region": "", "speech_base_url": "", "speech_output_format": "audio-48khz-96kbitrate-mono-mp3" } }, "stt": { "openai": { "api_base_url": "https://api.openai.com/v1", "api_key": "" }, "engine": "azure", "model": "", "supported_content_types": [ "" ], "whisper_model": "base", "deepgram": { "api_key": "" }, "azure": { "api_key": "", "region": "", "locales": "", "base_url": "", "max_speakers": "" } } }, "webhook_url": "", "auth": { "admin": { "show": true }, "api_key": { "enable": true, "endpoint_restrictions": false, "allowed_endpoints": "" }, "jwt_expiry": "5h" }, "webui": { "url": "" }, "channels": { "enable": false }, "notes": { "enable": true }, "ldap": { "enable": false } } ``` Relevant docker log section ``` openwebui-1 | INFO [alembic.runtime.migration] Context impl SQLiteImpl. openwebui-1 | INFO [alembic.runtime.migration] Will assume non-transactional DDL. openwebui-1 | INFO [open_webui.env] 'ENABLE_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_API_KEY_ENDPOINT_RESTRICTIONS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'API_KEY_ALLOWED_ENDPOINTS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'JWT_EXPIRES_IN' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_DIRECT_CONNECTIONS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_OLLAMA_API' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'OLLAMA_BASE_URLS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'OLLAMA_API_CONFIGS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_OPENAI_API' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'OPENAI_API_KEYS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'OPENAI_API_BASE_URLS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'OPENAI_API_CONFIGS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_BASE_MODELS_CACHE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'WEBUI_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_SIGNUP' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'DEFAULT_MODELS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'MODEL_ORDER_LIST' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'DEFAULT_USER_ROLE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'PENDING_USER_OVERLAY_TITLE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'PENDING_USER_OVERLAY_CONTENT' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'RESPONSE_WATERMARK' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_CHANNELS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_NOTES' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'WEBHOOK_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_COMMUNITY_SHARING' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_MESSAGE_RATING' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_USER_WEBHOOKS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'SHOW_ADMIN_DETAILS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2 openwebui-1 | INFO [open_webui.env] 'WHISPER_MODEL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'DEEPGRAM_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_BASE_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_ENGINE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_MODEL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_SUPPORTED_CONTENT_TYPES' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_AZURE_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_AZURE_REGION' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_AZURE_LOCALES' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_AZURE_BASE_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_STT_AZURE_MAX_SPEAKERS' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_BASE_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_API_KEY' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_ENGINE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_MODEL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_VOICE' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_SPLIT_ON' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_REGION' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_BASE_URL' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT' loaded from the latest database entry openwebui-1 | INFO [open_webui.env] 'ENABLE_LDAP' loaded from the latest database entry openwebui-1 | WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests. ``` ### Additional Information _No response_
GiteaMirror added the bug label 2026-04-25 07:11:46 -05:00
Author
Owner

@tjbck commented on GitHub (Jul 24, 2025):

Unable to reproduce, keep us updated.

<!-- gh-comment-id:3113674992 --> @tjbck commented on GitHub (Jul 24, 2025): Unable to reproduce, keep us updated.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#33271