[GH-ISSUE #7595] UI doesn't work anymore after trying to use pipeline with empty valve #30337

Closed
opened 2026-04-25 04:34:43 -05:00 by GiteaMirror · 0 comments
Owner

Originally created by @Xelaph on GitHub (Dec 4, 2024).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/7595

As suggested by @DmitriyAlergant-T1A a bug report for this issue

Discussed in https://github.com/open-webui/open-webui/discussions/7585

Originally posted by Xelaph December 3, 2024
I imported the following pipe function: https://openwebui.com/f/haervwe/arxiv_web_research_mcts_pipe
However, I forgot to set the model-id required by the function. When I tried to use the function from the main UI, I got a blank screen where I can't do anything no matter what page I try to go to. This persists over restarts.

I'm running the ghcr.io/open-webui/open-webui:ollama container
I get the following error in the logs:

 File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 609, in dispatch

    return await call_next(request)

           ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__

    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    await app(scope, receive, sender)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__

    await self.middleware_stack(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlett
g.py", line 776, in app

    await route.handle(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle

    await self.app(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app

    await wrap_app_handling_exceptions(app, request)(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    await app(scope, receive, sender)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app

    response = await func(request)

               ^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app

    raw_response = await run_endpoint_function(

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function

    return await dependant.call(**values)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1209, in get_models

    models = await get_all_models()

             ^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper

    return await self.decorator(f, *args, **kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator

    result = await f(*args, **kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1080, in get_all_models

    models = await get_all_base_models()

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models

    open_webui_models = await get_open_webui_models()

                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models

    pipe_models = await get_pipe_models()

                  ^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models

    function_module = get_function_module(pipe.id)

                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module

    function_module.valves = function_module.Valves(**(valves if valves else {}))

                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__

    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)

                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves

MODEL

  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]

    For further information visit https://errors.pydantic.dev/2.9/v/string_type

INFO:     connection closed

INFO:     192.168.1.189:0 - "GET /admin/settings HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /api/config HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnOj HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /api/v1/auths/ HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "POST /ws/socket.io/?EIO=4&transport=polling&t=PEELnPA&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnPD&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK

INFO:     ('192.168.1.189', 0) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket&sid=lkY5NldypM4DexICAAAG" [accepted]

INFO:     connection open

INFO:     192.168.1.189:0 - "GET /api/config HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnPw&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /api/changelog HTTP/1.1" 200 OK

INFO:     192.168.1.189:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK

INFO  [open_webui.apps.ollama.main] get_all_models()

[GIN] 2024/12/03 - 21:04:52 | 200 |     841.256µs |             ::1 | GET      "/api/tags"

INFO:     192.168.1.189:0 - "GET /api/models HTTP/1.1" 500 Internal Server Error

ERROR:    Exception in ASGI application

  + Exception Group Traceback (most recent call last):

  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups

  |     yield

  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 190, in __call__

  |     async with anyio.create_task_group() as task_group:

  |   File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 763, in __aexit__

  |     raise BaseExceptionGroup(

  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)

  +-+---------------- 1 ----------------

    | Traceback (most recent call last):

    |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi

    |     result = await app(  # type: ignore[func-returns-value]

    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__

    |     return await self.app(scope, receive, send)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__

    |     await super().__call__(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__

    |     await self.middleware_stack(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__

    |     await self.app(scope, receive, _send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__

    |     await self.app(scope, receive, send_wrapper)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1033, in inspect_websocket

    |     return await call_next(request)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1012, in update_embedding_function

    |     response = await call_next(request)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1004, in check_url

    |     response = await call_next(request)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 994, in commit_session_after_request

    |     response = await call_next(request)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch

    |     response = await call_next(request)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__

    |     await self.app(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 973, in dispatch

    |     response = await call_next(request)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 886, in dispatch

    |     return await call_next(request)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    |     with collapse_excgroups():

    |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    |     self.gen.throw(typ, value, traceback)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    |     response = await self.dispatch_func(request, call_next)

    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 609, in dispatch

    |     return await call_next(request)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    |     raise app_exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    |     await self.app(scope, receive_or_disconnect, send_no_error)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__

    |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    |     await app(scope, receive, sender)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__

    |     await self.middleware_stack(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app

    |     await route.handle(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle

    |     await self.app(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app

    |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    |     raise exc

    |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    |     await app(scope, receive, sender)

    |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app

    |     response = await func(request)

    |                ^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app

    |     raw_response = await run_endpoint_function(

    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function

    |     return await dependant.call(**values)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1209, in get_models

    |     models = await get_all_models()

    |              ^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper

    |     return await self.decorator(f, *args, **kwargs)

    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator

    |     result = await f(*args, **kwargs)

    |              ^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1080, in get_all_models

    |     models = await get_all_base_models()

    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models

    |     open_webui_models = await get_open_webui_models()

    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models

    |     pipe_models = await get_pipe_models()

    |                   ^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models

    |     function_module = get_function_module(pipe.id)

    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module

    |     function_module.valves = function_module.Valves(**(valves if valves else {}))

    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    |   File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__

    |     validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)

    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    | pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves

    | MODEL

    |   Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]

    |     For further information visit https://errors.pydantic.dev/2.9/v/string_type

    +------------------------------------



During handling of the above exception, another exception occurred:



Traceback (most recent call last):

  File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi

    result = await app(  # type: ignore[func-returns-value]

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__

    return await self.app(scope, receive, send)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__

    await super().__call__(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__

    await self.middleware_stack(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__

    await self.app(scope, receive, _send)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__

    await self.app(scope, receive, send_wrapper)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1033, in inspect_websock

    return await call_next(request)

           ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1012, in update_embedding_function

    response = await call_next(request)

               ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1004, in check_url

    response = await call_next(request)

               ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 994, in commit_session_after_request

    response = await call_next(request)

               ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch

    response = await call_next(request)

               ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__

    await self.app(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 973, in dispatch

    response = await call_next(request)

               ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excgroups():

  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 886, in dispatch

    return await call_next(request)

           ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__

    with collapse_excg


  File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__

    self.gen.throw(typ, value, traceback)

  File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__

    response = await self.dispatch_func(request, call_next)

               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 609, in dispatch

    return await call_next(request)

           ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next

    raise app_exc

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro

    await self.app(scope, receive_or_disconnect, send_no_error)

  File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__

    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    await app(scope, receive, sender)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__

    await self.middleware_stack(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app

    await route.handle(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle

    await self.app(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app

    await wrap_app_handling_exceptions(app, request)(scope, receive, send)

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app

    raise exc

  File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app

    await app(scope, receive, sender)

  File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app

    response = await func(request)

               ^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app

    raw_response = await run_endpoint_function(

                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function

    return await dependant.call(**values)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1209, in get_models

    models = await get_all_models()

             ^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper

    return await self.decorator(f, *args, **kwargs)

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator

    result = await f(*args, **kwargs)

             ^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1080, in get_all_models

    models = await get_all_base_models()

             ^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models

    open_webui_models = await get_open_webui_models()

                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models

    pipe_models = await get_pipe_models()

                  ^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models

    function_module = get_function_module(pipe.id)

                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module

    function_module.valves = function_module.Valves(**(valves if valves else {}))

                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__

    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)

                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves

MODEL

  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]

    For further information visit https://errors.pydantic.dev/2.9/v/string_type

```</div>
Originally created by @Xelaph on GitHub (Dec 4, 2024). Original GitHub issue: https://github.com/open-webui/open-webui/issues/7595 As suggested by @DmitriyAlergant-T1A a bug report for this issue ### Discussed in https://github.com/open-webui/open-webui/discussions/7585 <div type='discussions-op-text'> <sup>Originally posted by **Xelaph** December 3, 2024</sup> I imported the following pipe function: https://openwebui.com/f/haervwe/arxiv_web_research_mcts_pipe However, I forgot to set the model-id required by the function. When I tried to use the function from the main UI, I got a blank screen where I can't do anything no matter what page I try to go to. This persists over restarts. I'm running the ghcr.io/open-webui/open-webui:ollama container I get the following error in the logs: ``` File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 609, in dispatch return await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlett g.py", line 776, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app response = await func(request) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1209, in get_models models = await get_all_models() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper return await self.decorator(f, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator result = await f(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1080, in get_all_models models = await get_all_base_models() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models open_webui_models = await get_open_webui_models() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models pipe_models = await get_pipe_models() ^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models function_module = get_function_module(pipe.id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module function_module.valves = function_module.Valves(**(valves if valves else {})) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves MODEL Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.9/v/string_type INFO: connection closed INFO: 192.168.1.189:0 - "GET /admin/settings HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /api/config HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnOj HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /api/v1/auths/ HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "POST /ws/socket.io/?EIO=4&transport=polling&t=PEELnPA&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnPD&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK INFO: ('192.168.1.189', 0) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket&sid=lkY5NldypM4DexICAAAG" [accepted] INFO: connection open INFO: 192.168.1.189:0 - "GET /api/config HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /ws/socket.io/?EIO=4&transport=polling&t=PEELnPw&sid=lkY5NldypM4DexICAAAG HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /api/changelog HTTP/1.1" 200 OK INFO: 192.168.1.189:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK INFO [open_webui.apps.ollama.main] get_all_models() [GIN] 2024/12/03 - 21:04:52 | 200 | 841.256µs | ::1 | GET "/api/tags" INFO: 192.168.1.189:0 - "GET /api/models HTTP/1.1" 500 Internal Server Error ERROR: Exception in ASGI application + Exception Group Traceback (most recent call last): | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups | yield | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 190, in __call__ | async with anyio.create_task_group() as task_group: | File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 763, in __aexit__ | raise BaseExceptionGroup( | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) +-+---------------- 1 ---------------- | Traceback (most recent call last): | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi | result = await app( # type: ignore[func-returns-value] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__ | return await self.app(scope, receive, send) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__ | await super().__call__(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__ | await self.middleware_stack(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ | await self.app(scope, receive, _send) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__ | await self.app(scope, receive, send_wrapper) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1033, in inspect_websocket | return await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1012, in update_embedding_function | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1004, in check_url | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 994, in commit_session_after_request | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ | await self.app(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 973, in dispatch | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 886, in dispatch | return await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ | with collapse_excgroups(): | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 609, in dispatch | return await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next | raise app_exc | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__ | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app | await app(scope, receive, sender) | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__ | await self.middleware_stack(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app | await route.handle(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle | await self.app(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app | await wrap_app_handling_exceptions(app, request)(scope, receive, send) | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app | raise exc | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app | await app(scope, receive, sender) | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app | response = await func(request) | ^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app | raw_response = await run_endpoint_function( | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function | return await dependant.call(**values) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1209, in get_models | models = await get_all_models() | ^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper | return await self.decorator(f, *args, **kwargs) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator | result = await f(*args, **kwargs) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1080, in get_all_models | models = await get_all_base_models() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models | open_webui_models = await get_open_webui_models() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models | pipe_models = await get_pipe_models() | ^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models | function_module = get_function_module(pipe.id) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module | function_module.valves = function_module.Valves(**(valves if valves else {})) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__ | validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves | MODEL | Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] | For further information visit https://errors.pydantic.dev/2.9/v/string_type +------------------------------------ During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi result = await app( # type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__ await super().__call__(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ await self.app(scope, receive, _send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/sessions.py", line 85, in __call__ await self.app(scope, receive, send_wrapper) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1033, in inspect_websock return await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1012, in update_embedding_function response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1004, in check_url response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 994, in commit_session_after_request response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/utils/security_headers.py", line 11, in dispatch response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 973, in dispatch response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excgroups(): File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 886, in dispatch return await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ with collapse_excg File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 609, in dispatch return await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 165, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__ await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 297, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 77, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app raise exc File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app await app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 72, in app response = await func(request) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 278, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1209, in get_models models = await get_all_models() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 109, in wrapper return await self.decorator(f, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/aiocache/decorators.py", line 124, in decorator result = await f(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1080, in get_all_models models = await get_all_base_models() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/main.py", line 1072, in get_all_base_models open_webui_models = await get_open_webui_models() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 202, in get_all_models pipe_models = await get_pipe_models() ^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 260, in get_pipe_models function_module = get_function_module(pipe.id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/backend/open_webui/apps/webui/main.py", line 251, in get_function_module function_module.valves = function_module.Valves(**(valves if valves else {})) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 212, in __init__ validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for Valves MODEL Input should be a valid string [type=string_type, input_value=None, input_type=NoneType] For further information visit https://errors.pydantic.dev/2.9/v/string_type ```</div>
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#30337