[GH-ISSUE #22998] issue: Admin Audio Settings - STT/TTS engine dropdowns only show Default and Web API/Kokoro.js, missing OpenAI and other backends #58529

Closed
opened 2026-05-05 23:21:36 -05:00 by GiteaMirror · 0 comments
Owner

Originally created by @95256155o on GitHub (Mar 24, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/22998

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.8.10

Ollama Version (if applicable)

0.6.2

Operating System

Ubuntu 24.04 (aarch64)

Browser

Chrome (Windows)

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.
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation.

Expected Behavior

Admin Panel → Settings → Audio should list all backend-supported STT engines (OpenAI, Azure, Deepgram, Mistral) and TTS engines (OpenAI, Azure, ElevenLabs) in the dropdown menus, as documented and as supported by the backend router (open_webui/routers/audio.py).

Actual Behavior

  • STT Engine dropdown only shows: Default, Web API
  • TTS Engine dropdown only shows: Default, Kokoro.js (Browser)

No OpenAI or other backend options appear. This is confirmed as a frontend-only issue — after manually writing config directly into the database (see workaround below), OpenAI Whisper STT works perfectly via the backend.

Steps to Reproduce

  1. On Ubuntu 24.04 (aarch64), run:
    docker run -d --name open-webui -p 4319:8080 \
      -v open-webui-data:/app/backend/data \
      -e OLLAMA_BASE_URL=http://<ollama-host>:11434 \
      -e USE_OLLAMA_DOCKER=false \
      -e AUDIO_STT_ENGINE=openai \
      -e AUDIO_STT_OPENAI_API_BASE_URL=https://api.openai.com/v1 \
      -e AUDIO_STT_OPENAI_API_KEY=sk-... \
      -e AUDIO_STT_MODEL=whisper-1 \
      --restart always \
      ghcr.io/open-webui/open-webui:main
    
  2. Open browser (Chrome, Windows) and navigate to http://<host>:4319
  3. Log in as admin
  4. Go to Admin Panel → Settings → Audio
  5. Click the STT Engine dropdown — only Default and Web API are listed
  6. Click the TTS Engine dropdown — only Default and Kokoro.js (Browser) are listed
  7. No OpenAI, Azure, Deepgram, or Mistral options are visible despite environment variables being set

Logs & Screenshots

Browser console — no relevant errors:

[tiptap warn]: Duplicate event names found: ['codeBlock', 'bulletList', 'listItem', 'listKeymap', 'orderedList']. This can lead to issues.

Docker container logs — no errors, backend transcription works after DB workaround:

2026-03-24 20:39:03.665 | INFO | open_webui.routers.audio:transcription:1204 - file.content_type: audio/webm;codecs=opus
2026-03-24 20:39:03.665 | INFO | open_webui.routers.audio:transcribe:1072 - transcribe: /app/backend/data/cache/audio/transcriptions/28a4c2e6-a61c-477f-aee2-fb838401dc0c.webm None
2026-03-24 20:39:04.060 | INFO | open_webui.routers.audio:convert_audio_to_mp3:121 - Converted .webm to .mp3
2026-03-24 20:39:05.526 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - "POST /api/v1/audio/transcriptions HTTP/1.1" 200

Backend config verification — env vars are set but PersistentConfig reads DB first:

AUDIO_STT_ENGINE=openai
AUDIO_STT_OPENAI_API_BASE_URL=https://api.openai.com/v1
AUDIO_STT_OPENAI_API_KEY=sk-...
AUDIO_STT_MODEL=whisper-1

Additional Information

Workaround: Directly writing into webui.db config table makes the backend work, but the UI dropdown still does not reflect the change:

import sqlite3, json
conn = sqlite3.connect('/app/backend/data/webui.db')
row = conn.execute('SELECT data FROM config WHERE id=1').fetchone()
data = json.loads(row[0])
data['audio.stt.engine'] = 'openai'
data['audio.stt.openai.api_base_url'] = 'https://api.openai.com/v1'
data['audio.stt.openai.api_key'] = 'sk-...'
data['audio.stt.model'] = 'whisper-1'
conn.execute('UPDATE config SET data=? WHERE id=1', (json.dumps(data),))
conn.commit()

After restart, POST /api/v1/audio/transcriptions returns 200 with correct Whisper transcription. The issue is solely in the frontend dropdown rendering.

Image digest: sha256:b80a96e14bb15ea79aec96fbdad4aeab6b3ee7b61520d83b5dbc8c4f47d433a9

Originally created by @95256155o on GitHub (Mar 24, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/22998 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.8.10 ### Ollama Version (if applicable) 0.6.2 ### Operating System Ubuntu 24.04 (aarch64) ### Browser Chrome (Windows) ### 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.** - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. ### Expected Behavior Admin Panel → Settings → Audio should list all backend-supported STT engines (OpenAI, Azure, Deepgram, Mistral) and TTS engines (OpenAI, Azure, ElevenLabs) in the dropdown menus, as documented and as supported by the backend router (`open_webui/routers/audio.py`). ### Actual Behavior - **STT Engine dropdown** only shows: `Default`, `Web API` - **TTS Engine dropdown** only shows: `Default`, `Kokoro.js (Browser)` No OpenAI or other backend options appear. This is confirmed as a **frontend-only issue** — after manually writing config directly into the database (see workaround below), OpenAI Whisper STT works perfectly via the backend. ### Steps to Reproduce 1. On Ubuntu 24.04 (aarch64), run: ```bash docker run -d --name open-webui -p 4319:8080 \ -v open-webui-data:/app/backend/data \ -e OLLAMA_BASE_URL=http://<ollama-host>:11434 \ -e USE_OLLAMA_DOCKER=false \ -e AUDIO_STT_ENGINE=openai \ -e AUDIO_STT_OPENAI_API_BASE_URL=https://api.openai.com/v1 \ -e AUDIO_STT_OPENAI_API_KEY=sk-... \ -e AUDIO_STT_MODEL=whisper-1 \ --restart always \ ghcr.io/open-webui/open-webui:main ``` 2. Open browser (Chrome, Windows) and navigate to `http://<host>:4319` 3. Log in as admin 4. Go to Admin Panel → Settings → Audio 5. Click the STT Engine dropdown — only `Default` and `Web API` are listed 6. Click the TTS Engine dropdown — only `Default` and `Kokoro.js (Browser)` are listed 7. No OpenAI, Azure, Deepgram, or Mistral options are visible despite environment variables being set ### Logs & Screenshots **Browser console** — no relevant errors: ``` [tiptap warn]: Duplicate event names found: ['codeBlock', 'bulletList', 'listItem', 'listKeymap', 'orderedList']. This can lead to issues. ``` **Docker container logs** — no errors, backend transcription works after DB workaround: ``` 2026-03-24 20:39:03.665 | INFO | open_webui.routers.audio:transcription:1204 - file.content_type: audio/webm;codecs=opus 2026-03-24 20:39:03.665 | INFO | open_webui.routers.audio:transcribe:1072 - transcribe: /app/backend/data/cache/audio/transcriptions/28a4c2e6-a61c-477f-aee2-fb838401dc0c.webm None 2026-03-24 20:39:04.060 | INFO | open_webui.routers.audio:convert_audio_to_mp3:121 - Converted .webm to .mp3 2026-03-24 20:39:05.526 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - "POST /api/v1/audio/transcriptions HTTP/1.1" 200 ``` **Backend config verification** — env vars are set but `PersistentConfig` reads DB first: ``` AUDIO_STT_ENGINE=openai AUDIO_STT_OPENAI_API_BASE_URL=https://api.openai.com/v1 AUDIO_STT_OPENAI_API_KEY=sk-... AUDIO_STT_MODEL=whisper-1 ``` ### Additional Information **Workaround**: Directly writing into `webui.db` config table makes the backend work, but the UI dropdown still does not reflect the change: ```python import sqlite3, json conn = sqlite3.connect('/app/backend/data/webui.db') row = conn.execute('SELECT data FROM config WHERE id=1').fetchone() data = json.loads(row[0]) data['audio.stt.engine'] = 'openai' data['audio.stt.openai.api_base_url'] = 'https://api.openai.com/v1' data['audio.stt.openai.api_key'] = 'sk-...' data['audio.stt.model'] = 'whisper-1' conn.execute('UPDATE config SET data=? WHERE id=1', (json.dumps(data),)) conn.commit() ``` After restart, `POST /api/v1/audio/transcriptions` returns 200 with correct Whisper transcription. The issue is solely in the frontend dropdown rendering. **Image digest**: `sha256:b80a96e14bb15ea79aec96fbdad4aeab6b3ee7b61520d83b5dbc8c4f47d433a9`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#58529