[GH-ISSUE #12658] issue: Exception handling API call from openai API #55340

Closed
opened 2026-05-05 17:27:47 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @tblattner on GitHub (Apr 9, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/12658

Check Existing Issues

  • I have searched the existing issues and discussions.
  • 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

  • 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 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.

63533c9e3a/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:

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). Original GitHub issue: https://github.com/open-webui/open-webui/issues/12658 ### 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 2026-05-05 17:27:47 -05:00
Author
Owner

@tjbck commented on GitHub (Apr 9, 2025):

Should be addressed in dev.

<!-- gh-comment-id:2790512456 --> @tjbck commented on GitHub (Apr 9, 2025): Should be addressed in dev.
Author
Owner

@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?

<!-- gh-comment-id:2790819957 --> @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?
Author
Owner

@alexveli1 commented on GitHub (Apr 10, 2025):

Same issue here. Using API key from user profile.

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
<!-- gh-comment-id:2794312498 --> @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 ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#55340