The exception accesses a metadata dictionary, and in this case its not being created in time due to the exception occurring before line 1078 in main.py
Actual Behavior
A bad request is being sent via the OpenAI API from a client to the openwebui chat/completions API.
The error associated with this message is producing the exception:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/audit.py", line 154, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 905, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 884, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 870, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 859, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
Steps to Reproduce
Run script using current version of openai (1.72.0)
import httpx
import openai
import os
from dotenv import load_dotenv
load_dotenv()
url = "https://url_to_openwebui/api"
# Use an incorrect model name to produce the error
model = "meta-llama/Llama-3.3-70B-Instruct"
# Create a non-async client to test the connection
test_client = openai.OpenAI(
base_url=url,
# api_key="sk-no-key-required",
api_key=os.environ.get("OPENAI_API_KEY"),
http_client=httpx.Client(verify=False)
)
content = "This is a test of the system, please respond with \"Hello... this is how you talk to me\""
response = test_client.chat.completions.create(
model=model,
max_tokens=1024,
temperature=0.7,
top_p=0.95,
stream=False,
messages=[
{"role": "user", "content": content}
]
)
print(response.choices[0].message.content)
Logs & Screenshots
The error associated with this message is producing the exception:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/audit.py", line 154, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 905, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 884, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 870, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 859, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
Additional Information
None
Originally created by @tblattner on GitHub (Apr 9, 2025).
### Check Existing Issues
- [x] I have searched the existing issues and discussions.
- [x] I am using the latest version of Open WebUI.
### Installation Method
Pip Install
### Open WebUI Version
0.6.0
### Ollama Version (if applicable)
_No response_
### Operating System
Ubuntu 22.04
### Browser (if applicable)
N/A
### 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 listed steps to reproduce the bug in detail.
### Expected Behavior
The user's bad behavior should report the error message and not produce an exception.
https://github.com/open-webui/open-webui/blob/63533c9e3ab41edd7bd4124ef94f6b6dc09aa175/backend/open_webui/main.py#L1111
The exception accesses a metadata dictionary, and in this case its not being created in time due to the exception occurring before [line 1078 in main.py](https://github.com/open-webui/open-webui/blob/63533c9e3ab41edd7bd4124ef94f6b6dc09aa175/backend/open_webui/main.py#L1078)
### Actual Behavior
A bad request is being sent via the OpenAI API from a client to the openwebui chat/completions API.
The error associated with this message is producing the exception:
```
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/audit.py", line 154, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 905, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 884, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 870, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 859, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
```
### Steps to Reproduce
Run script using current version of openai (1.72.0)
```
import httpx
import openai
import os
from dotenv import load_dotenv
load_dotenv()
url = "https://url_to_openwebui/api"
# Use an incorrect model name to produce the error
model = "meta-llama/Llama-3.3-70B-Instruct"
# Create a non-async client to test the connection
test_client = openai.OpenAI(
base_url=url,
# api_key="sk-no-key-required",
api_key=os.environ.get("OPENAI_API_KEY"),
http_client=httpx.Client(verify=False)
)
content = "This is a test of the system, please respond with \"Hello... this is how you talk to me\""
response = test_client.chat.completions.create(
model=model,
max_tokens=1024,
temperature=0.7,
top_p=0.95,
stream=False,
messages=[
{"role": "user", "content": content}
]
)
print(response.choices[0].message.content)
```
### Logs & Screenshots
The error associated with this message is producing the exception:
```
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__
await self.app(scope, receive, send_wrapper)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/audit.py", line 154, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 905, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 884, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 870, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/contextlib.py", line 158, in __exit__
self.gen.throw(typ, value, traceback)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 859, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/chat-data/miniforge3/envs/openwebui/lib/python3.11/site-packages/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
```
### Additional Information
None
GiteaMirror
added the bug label 2025-11-11 16:03:06 -06:00
This is great to hear! Do you happen to know when the next release is scheduled?
@tblattner commented on GitHub (Apr 9, 2025):
> Should be addressed in dev.
This is great to hear! Do you happen to know when the next release is scheduled?
curl -X POST http://localhost:3000/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY"\
-H "Content-Type: application/json"\
-d '{
"model": "llama3.1",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
]
}'
Internal Server Error
Container logs show:
docker compose logs -f open-webui
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response= await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/backend/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
@alexveli1 commented on GitHub (Apr 10, 2025):
Same issue here. Using API key from user profile.
```sh
curl -X POST http://localhost:3000/api/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1",
"messages": [
{
"role": "user",
"content": "Why is the sky blue?"
}
]
}'
Internal Server Error
```
**Container logs show:**
```sh
docker compose logs -f open-webui
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/backend/open_webui/main.py", line 1112, in chat_completion
metadata["chat_id"],
^^^^^^^^
UnboundLocalError: cannot access local variable 'metadata' where it is not associated with a value
```
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @tblattner on GitHub (Apr 9, 2025).
Check Existing Issues
Installation Method
Pip Install
Open WebUI Version
0.6.0
Ollama Version (if applicable)
No response
Operating System
Ubuntu 22.04
Browser (if applicable)
N/A
Confirmation
README.md.Expected Behavior
The user's bad behavior should report the error message and not produce an exception.
https://github.com/open-webui/open-webui/blob/63533c9e3ab41edd7bd4124ef94f6b6dc09aa175/backend/open_webui/main.py#L1111
The exception accesses a metadata dictionary, and in this case its not being created in time due to the exception occurring before line 1078 in main.py
Actual Behavior
A bad request is being sent via the OpenAI API from a client to the openwebui chat/completions API.
The error associated with this message is producing the exception:
Steps to Reproduce
Run script using current version of openai (1.72.0)
Logs & Screenshots
The error associated with this message is producing the exception:
Additional Information
None
@tjbck commented on GitHub (Apr 9, 2025):
Should be addressed in dev.
@tblattner commented on GitHub (Apr 9, 2025):
This is great to hear! Do you happen to know when the next release is scheduled?
@alexveli1 commented on GitHub (Apr 10, 2025):
Same issue here. Using API key from user profile.
Container logs show: