mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-18 10:48:00 -05:00
[GH-ISSUE #24051] issue: Mistral AI TTS raising a 400 Bad Request error #74770
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @deathmaster9 on GitHub (Apr 23, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24051
Check Existing Issues
Installation Method
Docker
Open WebUI Version
0.9.1
Ollama Version (if applicable)
0.21.1
Operating System
macOS Sequoia
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
When i click on the read text, i must get the voice version.
I configured TTS with Mistral AI.
The STT with Mistral AI is working well.
Actual Behavior
When I click on the read text, I'm getting the following error :
External: 400, message='Bad Request', url='https://api.mistral.ai/v1/audio/speech'
Steps to Reproduce
After configuring the TTS with the Mistral AI (see attached pic), i click on a generated text to hear it and i get the error.

Logs & Screenshots
Docker logs :
2026-04-23 22:20:27.012 | 2026-04-23 20:20:27.011 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:27082 - "POST /api/chat/completions HTTP/1.1" 200
2026-04-23 22:20:27.066 | 2026-04-23 20:20:27.065 | INFO | open_webui.utils.session_pool:get_session:66 - Created shared aiohttp session pool (limit=unlimited, per_host=unlimited, dns_ttl=300)
2026-04-23 22:20:29.037 | 2026-04-23 20:20:29.037 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:27082 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200
2026-04-23 22:20:40.991 | 2026-04-23 20:20:40.990 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 162.159.142.207:19586 - "GET /_app/version.json HTTP/1.1" 200
2026-04-23 22:20:53.756 | 2026-04-23 20:20:53.756 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 162.159.142.207:53802 - "POST /api/chat/completions HTTP/1.1" 200
2026-04-23 22:20:55.208 | 2026-04-23 20:20:55.208 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 162.159.142.207:53802 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200
2026-04-23 22:21:01.988 | 2026-04-23 20:21:01.982 | ERROR | open_webui.routers.audio:speech:612 - 400, message='Bad Request', url='https://api.mistral.ai/v1/audio/speech'
2026-04-23 22:21:01.988 | Traceback (most recent call last):
2026-04-23 22:21:01.988 |
2026-04-23 22:21:01.988 | File "", line 198, in _run_module_as_main
2026-04-23 22:21:01.988 | File "", line 88, in _run_code
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 4, in
2026-04-23 22:21:01.988 | uvicorn.main()
2026-04-23 22:21:01.988 | │ └
2026-04-23 22:21:01.988 | └ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/init.py'>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in call
2026-04-23 22:21:01.988 | return self.main(args, **kwargs)
2026-04-23 22:21:01.988 | │ │ │ └ {}
2026-04-23 22:21:01.988 | │ │ └ ()
2026-04-23 22:21:01.988 | │ └ <function Command.main at 0x7fefed347100>
2026-04-23 22:21:01.988 | └
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
2026-04-23 22:21:01.988 | rv = self.invoke(ctx)
2026-04-23 22:21:01.988 | │ │ └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:01.988 | │ └ <function Command.invoke at 0x7fefed346de0>
2026-04-23 22:21:01.988 | └
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
2026-04-23 22:21:01.988 | return ctx.invoke(self.callback, **ctx.params)
2026-04-23 22:21:01.988 | │ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2026-04-23 22:21:01.988 | │ │ │ │ └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:01.988 | │ │ │ └ <function main at 0x7fefed13fb00>
2026-04-23 22:21:01.988 | │ │ └
2026-04-23 22:21:01.988 | │ └ <function Context.invoke at 0x7fefed346020>
2026-04-23 22:21:01.988 | └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
2026-04-23 22:21:01.988 | return callback(args, **kwargs)
2026-04-23 22:21:01.988 | │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2026-04-23 22:21:01.988 | │ └ ()
2026-04-23 22:21:01.988 | └ <function main at 0x7fefed13fb00>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main
2026-04-23 22:21:01.988 | run(
2026-04-23 22:21:01.988 | └ <function run at 0x7fefed1e1bc0>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run
2026-04-23 22:21:01.988 | server.run()
2026-04-23 22:21:01.988 | │ └ <function Server.run at 0x7fefed1e1440>
2026-04-23 22:21:01.988 | └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run
2026-04-23 22:21:01.988 | return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
2026-04-23 22:21:01.988 | │ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7fefed3105e0>
2026-04-23 22:21:01.988 | │ │ │ │ │ └ <uvicorn.config.Config object at 0x7fefee206950>
2026-04-23 22:21:01.988 | │ │ │ │ └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:01.988 | │ │ │ └ None
2026-04-23 22:21:01.988 | │ │ └ <function Server.serve at 0x7fefed1e14e0>
2026-04-23 22:21:01.988 | │ └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:01.988 | └ <function asyncio_run at 0x7fefed34a0c0>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
2026-04-23 22:21:01.988 | return runner.run(main)
2026-04-23 22:21:01.988 | │ │ └ <coroutine object Server.serve at 0x7fefed09b3d0>
2026-04-23 22:21:01.988 | │ └ <function Runner.run at 0x7fefed594f40>
2026-04-23 22:21:01.988 | └ <asyncio.runners.Runner object at 0x7fefee207e50>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2026-04-23 22:21:01.988 | return self._loop.run_until_complete(task)
2026-04-23 22:21:01.988 | │ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:79> wai...
2026-04-23 22:21:01.988 | │ │ └ <cyfunction Loop.run_until_complete at 0x7fefed15dfc0>
2026-04-23 22:21:01.988 | │ └ <uvloop.Loop running=True closed=False debug=False>
2026-04-23 22:21:01.988 | └ <asyncio.runners.Runner object at 0x7fefee207e50>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
2026-04-23 22:21:01.988 | await self.app(scope, receive_or_disconnect, send_no_error)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923060>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <open_webui.utils.asgi_middleware.RedirectMiddleware object at 0x7fef57bcab10>
2026-04-23 22:21:01.988 | └ <open_webui.utils.security_headers.SecurityHeadersMiddleware object at 0x7fef57ac2410>
2026-04-23 22:21:01.988 |
2026-04-23 22:21:01.988 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 215, in call
2026-04-23 22:21:01.988 | await self.app(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923060>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <starlette_compress.CompressMiddleware object at 0x7fefeccf3bf0>
2026-04-23 22:21:01.988 | └ <open_webui.utils.asgi_middleware.RedirectMiddleware object at 0x7fef57bcab10>
2026-04-23 22:21:01.988 |
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/init.py", line 104, in call
2026-04-23 22:21:01.988 | return await self._zstd(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923060>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <member '_zstd' of 'CompressMiddleware' objects>
2026-04-23 22:21:01.988 | └ <starlette_compress.CompressMiddleware object at 0x7fefeccf3bf0>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in call
2026-04-23 22:21:01.988 | await self.app(scope, receive, wrapper)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function ZstdResponder.call..wrapper at 0x7fef569219e0>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <member 'app' of 'ZstdResponder' objects>
2026-04-23 22:21:01.988 | └ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7fef5ca62800>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
2026-04-23 22:21:01.988 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ │ │ └ <function ZstdResponder.call..wrapper at 0x7fef569219e0>
2026-04-23 22:21:01.988 | │ │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ │ │ └ <starlette.requests.Request object at 0x7fef56f0dd90>
2026-04-23 22:21:01.988 | │ │ └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:01.988 | │ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fef57a1a990>
2026-04-23 22:21:01.988 | └ <function wrap_app_handling_exceptions at 0x7fefea99b420>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2026-04-23 22:21:01.988 | await app(scope, receive, sender)
2026-04-23 22:21:01.988 | │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.988 | │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
2026-04-23 22:21:01.988 | await self.app(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>
2026-04-23 22:21:01.988 | └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
2026-04-23 22:21:01.988 | await self.middleware_stack(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>>
2026-04-23 22:21:01.988 | └ <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
2026-04-23 22:21:01.988 | await route.handle(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <function Route.handle at 0x7fefea9dc9a0>
2026-04-23 22:21:01.988 | └ APIRoute(path='/api/v1/audio/speech', name='speech', methods=['POST'])
2026-04-23 22:21:01.988 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
2026-04-23 22:21:01.988 | await self.app(scope, receive, send)
2026-04-23 22:21:01.988 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.988 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.988 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.988 | │ └ <function request_response..app at 0x7fef5caa8220>
2026-04-23 22:21:01.988 | └ APIRoute(path='/api/v1/audio/speech', name='speech', methods=['POST'])
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
2026-04-23 22:21:01.989 | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2026-04-23 22:21:01.989 | │ │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef569223e0>
2026-04-23 22:21:01.989 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.989 | │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.989 | │ │ └ <starlette.requests.Request object at 0x7fef56d07410>
2026-04-23 22:21:01.989 | │ └ <function request_response..app..app at 0x7fef56923100>
2026-04-23 22:21:01.989 | └ <function wrap_app_handling_exceptions at 0x7fefea99b420>
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2026-04-23 22:21:01.989 | await app(scope, receive, sender)
2026-04-23 22:21:01.989 | │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56922340>
2026-04-23 22:21:01.989 | │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef56dcc5e0>
2026-04-23 22:21:01.989 | │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:01.989 | └ <function request_response..app..app at 0x7fef56923100>
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
2026-04-23 22:21:01.989 | response = await f(request)
2026-04-23 22:21:01.989 | │ └ <starlette.requests.Request object at 0x7fef56d07410>
2026-04-23 22:21:01.989 | └ <function get_request_handler..app at 0x7fef5caa82c0>
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
2026-04-23 22:21:01.989 | raw_response = await run_endpoint_function(
2026-04-23 22:21:01.989 | └ <function run_endpoint_function at 0x7fefea9dea20>
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
2026-04-23 22:21:01.989 | return await dependant.call(**values)
2026-04-23 22:21:01.989 | │ │ └ {'user': UserModel(id='040d4c69-b351-47d7-a1fc-bbf380d2097b', email='marc.moussa@gmail.com', username=None, role='admin', nam...
2026-04-23 22:21:01.989 | │ └ <function speech at 0x7fefb7710ae0>
2026-04-23 22:21:01.989 | └ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[], dependencies=[Dependant(path_p...
2026-04-23 22:21:01.989 |
2026-04-23 22:21:01.989 | > File "/app/backend/open_webui/routers/audio.py", line 594, in speech
2026-04-23 22:21:01.989 | r.raise_for_status()
2026-04-23 22:21:01.989 | │ └ <function ClientResponse.raise_for_status at 0x7fefeac5a520>
2026-04-23 22:21:01.989 | └ <ClientResponse(https://api.mistral.ai/v1/audio/speech) [400 Bad Request]>
2026-04-23 22:21:01.989 | <CIMultiDictProxy('Date': 'Thu, 23 Apr 2026 20:21:...
2026-04-23 22:21:01.989 |
2026-04-23 22:21:01.989 | File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 636, in raise_for_status
2026-04-23 22:21:01.989 | raise ClientResponseError(
2026-04-23 22:21:01.989 | └ <class 'aiohttp.client_exceptions.ClientResponseError'>
2026-04-23 22:21:01.989 |
2026-04-23 22:21:01.989 | aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='https://api.mistral.ai/v1/audio/speech'
2026-04-23 22:21:01.989 | 2026-04-23 20:21:01.988 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:63294 - "POST /api/v1/audio/speech HTTP/1.1" 400
2026-04-23 22:21:02.212 | 2026-04-23 20:21:02.207 | ERROR | open_webui.routers.audio:speech:612 - 400, message='Bad Request', url='https://api.mistral.ai/v1/audio/speech'
2026-04-23 22:21:02.212 | Traceback (most recent call last):
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | File "", line 198, in _run_module_as_main
2026-04-23 22:21:02.212 | File "", line 88, in _run_code
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 4, in
2026-04-23 22:21:02.212 | uvicorn.main()
2026-04-23 22:21:02.212 | │ └
2026-04-23 22:21:02.212 | └ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/init.py'>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in call
2026-04-23 22:21:02.212 | return self.main(args, **kwargs)
2026-04-23 22:21:02.212 | │ │ │ └ {}
2026-04-23 22:21:02.212 | │ │ └ ()
2026-04-23 22:21:02.212 | │ └ <function Command.main at 0x7fefed347100>
2026-04-23 22:21:02.212 | └
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
2026-04-23 22:21:02.212 | rv = self.invoke(ctx)
2026-04-23 22:21:02.212 | │ │ └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:02.212 | │ └ <function Command.invoke at 0x7fefed346de0>
2026-04-23 22:21:02.212 | └
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
2026-04-23 22:21:02.212 | return ctx.invoke(self.callback, **ctx.params)
2026-04-23 22:21:02.212 | │ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2026-04-23 22:21:02.212 | │ │ │ │ └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:02.212 | │ │ │ └ <function main at 0x7fefed13fb00>
2026-04-23 22:21:02.212 | │ │ └
2026-04-23 22:21:02.212 | │ └ <function Context.invoke at 0x7fefed346020>
2026-04-23 22:21:02.212 | └ <click.core.Context object at 0x7fefee070850>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
2026-04-23 22:21:02.212 | return callback(args, **kwargs)
2026-04-23 22:21:02.212 | │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
2026-04-23 22:21:02.212 | │ └ ()
2026-04-23 22:21:02.212 | └ <function main at 0x7fefed13fb00>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 433, in main
2026-04-23 22:21:02.212 | run(
2026-04-23 22:21:02.212 | └ <function run at 0x7fefed1e1bc0>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 606, in run
2026-04-23 22:21:02.212 | server.run()
2026-04-23 22:21:02.212 | │ └ <function Server.run at 0x7fefed1e1440>
2026-04-23 22:21:02.212 | └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 75, in run
2026-04-23 22:21:02.212 | return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
2026-04-23 22:21:02.212 | │ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7fefed3105e0>
2026-04-23 22:21:02.212 | │ │ │ │ │ └ <uvicorn.config.Config object at 0x7fefee206950>
2026-04-23 22:21:02.212 | │ │ │ │ └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:02.212 | │ │ │ └ None
2026-04-23 22:21:02.212 | │ │ └ <function Server.serve at 0x7fefed1e14e0>
2026-04-23 22:21:02.212 | │ └ <uvicorn.server.Server object at 0x7fefed379d10>
2026-04-23 22:21:02.212 | └ <function asyncio_run at 0x7fefed34a0c0>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
2026-04-23 22:21:02.212 | return runner.run(main)
2026-04-23 22:21:02.212 | │ │ └ <coroutine object Server.serve at 0x7fefed09b3d0>
2026-04-23 22:21:02.212 | │ └ <function Runner.run at 0x7fefed594f40>
2026-04-23 22:21:02.212 | └ <asyncio.runners.Runner object at 0x7fefee207e50>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2026-04-23 22:21:02.212 | return self._loop.run_until_complete(task)
2026-04-23 22:21:02.212 | │ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:79> wai...
2026-04-23 22:21:02.212 | │ │ └ <cyfunction Loop.run_until_complete at 0x7fefed15dfc0>
2026-04-23 22:21:02.212 | │ └ <uvloop.Loop running=True closed=False debug=False>
2026-04-23 22:21:02.212 | └ <asyncio.runners.Runner object at 0x7fefee207e50>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 144, in coro
2026-04-23 22:21:02.212 | await self.app(scope, receive_or_disconnect, send_no_error)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923ce0>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <open_webui.utils.asgi_middleware.RedirectMiddleware object at 0x7fef57bcab10>
2026-04-23 22:21:02.212 | └ <open_webui.utils.security_headers.SecurityHeadersMiddleware object at 0x7fef57ac2410>
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | File "/app/backend/open_webui/utils/asgi_middleware.py", line 215, in call
2026-04-23 22:21:02.212 | await self.app(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923ce0>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <starlette_compress.CompressMiddleware object at 0x7fefeccf3bf0>
2026-04-23 22:21:02.212 | └ <open_webui.utils.asgi_middleware.RedirectMiddleware object at 0x7fef57bcab10>
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/init.py", line 104, in call
2026-04-23 22:21:02.212 | return await self._zstd(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..send_no_error at 0x7fef56923ce0>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <member '_zstd' of 'CompressMiddleware' objects>
2026-04-23 22:21:02.212 | └ <starlette_compress.CompressMiddleware object at 0x7fefeccf3bf0>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 107, in call
2026-04-23 22:21:02.212 | await self.app(scope, receive, wrapper)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function ZstdResponder.call..wrapper at 0x7fef56920e00>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <member 'app' of 'ZstdResponder' objects>
2026-04-23 22:21:02.212 | └ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7fef5ca62800>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 63, in call
2026-04-23 22:21:02.212 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ │ │ └ <function ZstdResponder.call..wrapper at 0x7fef56920e00>
2026-04-23 22:21:02.212 | │ │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ │ │ └ <starlette.requests.Request object at 0x7fef56d639d0>
2026-04-23 22:21:02.212 | │ │ └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:02.212 | │ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7fef57a1a990>
2026-04-23 22:21:02.212 | └ <function wrap_app_handling_exceptions at 0x7fefea99b420>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2026-04-23 22:21:02.212 | await app(scope, receive, sender)
2026-04-23 22:21:02.212 | │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
2026-04-23 22:21:02.212 | await self.app(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>
2026-04-23 22:21:02.212 | └ <fastapi.middleware.asyncexitstack.AsyncExitStackMiddleware object at 0x7fef5e06d850>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 660, in call
2026-04-23 22:21:02.212 | await self.middleware_stack(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>>
2026-04-23 22:21:02.212 | └ <fastapi.routing.APIRouter object at 0x7fef5d4a3f90>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 680, in app
2026-04-23 22:21:02.212 | await route.handle(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <function Route.handle at 0x7fefea9dc9a0>
2026-04-23 22:21:02.212 | └ APIRoute(path='/api/v1/audio/speech', name='speech', methods=['POST'])
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
2026-04-23 22:21:02.212 | await self.app(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ └ <function request_response..app at 0x7fef5caa8220>
2026-04-23 22:21:02.212 | └ APIRoute(path='/api/v1/audio/speech', name='speech', methods=['POST'])
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 130, in app
2026-04-23 22:21:02.212 | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2026-04-23 22:21:02.212 | │ │ │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56921b20>
2026-04-23 22:21:02.212 | │ │ │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | │ │ └ <starlette.requests.Request object at 0x7fef56d60950>
2026-04-23 22:21:02.212 | │ └ <function request_response..app..app at 0x7fef569220c0>
2026-04-23 22:21:02.212 | └ <function wrap_app_handling_exceptions at 0x7fefea99b420>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2026-04-23 22:21:02.212 | await app(scope, receive, sender)
2026-04-23 22:21:02.212 | │ │ │ └ <function wrap_app_handling_exceptions..wrapped_app..sender at 0x7fef56923d80>
2026-04-23 22:21:02.212 | │ │ └ <function BaseHTTPMiddleware.call..call_next..receive_or_disconnect at 0x7fef569216c0>
2026-04-23 22:21:02.212 | │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('172.17.0.2', 8080), 'c...
2026-04-23 22:21:02.212 | └ <function request_response..app..app at 0x7fef569220c0>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 116, in app
2026-04-23 22:21:02.212 | response = await f(request)
2026-04-23 22:21:02.212 | │ └ <starlette.requests.Request object at 0x7fef56d60950>
2026-04-23 22:21:02.212 | └ <function get_request_handler..app at 0x7fef5caa82c0>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 670, in app
2026-04-23 22:21:02.212 | raw_response = await run_endpoint_function(
2026-04-23 22:21:02.212 | └ <function run_endpoint_function at 0x7fefea9dea20>
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 324, in run_endpoint_function
2026-04-23 22:21:02.212 | return await dependant.call(**values)
2026-04-23 22:21:02.212 | │ │ └ {'user': UserModel(id='040d4c69-b351-47d7-a1fc-bbf380d2097b', email='marc.moussa@gmail.com', username=None, role='admin', nam...
2026-04-23 22:21:02.212 | │ └ <function speech at 0x7fefb7710ae0>
2026-04-23 22:21:02.212 | └ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[], dependencies=[Dependant(path_p...
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | > File "/app/backend/open_webui/routers/audio.py", line 594, in speech
2026-04-23 22:21:02.212 | r.raise_for_status()
2026-04-23 22:21:02.212 | │ └ <function ClientResponse.raise_for_status at 0x7fefeac5a520>
2026-04-23 22:21:02.212 | └ <ClientResponse(https://api.mistral.ai/v1/audio/speech) [400 Bad Request]>
2026-04-23 22:21:02.212 | <CIMultiDictProxy('Date': 'Thu, 23 Apr 2026 20:21:...
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 636, in raise_for_status
2026-04-23 22:21:02.212 | raise ClientResponseError(
2026-04-23 22:21:02.212 | └ <class 'aiohttp.client_exceptions.ClientResponseError'>
2026-04-23 22:21:02.212 |
2026-04-23 22:21:02.212 | aiohttp.client_exceptions.ClientResponseError: 400, message='Bad Request', url='https://api.mistral.ai/v1/audio/speech'
2026-04-23 22:21:02.213 | 2026-04-23 20:21:02.212 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:63294 - "POST /api/v1/audio/speech HTTP/1.1" 400
2026-04-23 22:21:04.296 | 2026-04-23 20:21:04.296 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:63294 - "GET /_app/version.json HTTP/1.1" 304
2026-04-23 22:21:40.995 | 2026-04-23 20:21:40.995 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:22238 - "GET /_app/version.json HTTP/1.1" 200
2026-04-23 22:22:04.701 | 2026-04-23 20:22:04.701 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:27781 - "GET /_app/version.json HTTP/1.1" 304
2026-04-23 22:22:40.995 | 2026-04-23 20:22:40.994 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:28031 - "GET /_app/version.json HTTP/1.1" 200
2026-04-23 22:23:04.704 | 2026-04-23 20:23:04.704 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:56169 - "GET /_app/version.json HTTP/1.1" 304
2026-04-23 22:23:22.235 | 2026-04-23 20:23:22.235 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:50738 - "GET /api/usage HTTP/1.1" 200
2026-04-23 22:23:25.539 | 2026-04-23 20:23:25.538 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:50738 - "GET /ollama/api/version HTTP/1.1" 200
2026-04-23 22:23:25.717 | 2026-04-23 20:23:25.717 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 172.66.2.203:50738 - "GET /api/version/updates HTTP/1.1" 200
2026-04-23 22:23:40.994 | 2026-04-23 20:23:40.994 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:28828 - "GET /_app/version.json HTTP/1.1" 200
2026-04-23 22:23:44.816 | 2026-04-23 20:23:44.815 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:59394 - "GET /api/version/updates HTTP/1.1" 200
2026-04-23 22:23:45.786 | 2026-04-23 20:23:45.786 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:59394 - "GET /api/version/updates HTTP/1.1" 200
2026-04-23 22:24:04.791 | 2026-04-23 20:24:04.791 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:21641 - "GET /_app/version.json HTTP/1.1" 304
2026-04-23 22:24:40.994 | 2026-04-23 20:24:40.994 | INFO | uvicorn.protocols.http.httptools_impl:send:483 - 192.168.65.1:56430 - "GET /_app/version.json HTTP/1.1" 200
Additional Information
No response
@troed commented on GitHub (Apr 24, 2026):
If it's the same as I had it's because the default/suggested model name no longer exists. Switching to voxtral-mini-tts-2603 worked for me.
@tjbck commented on GitHub (Apr 24, 2026):
Addressed in dev.