open-webui/backend/open_webui
Classic298 3348f68778
fix: keep attachment-only messages intact when skills are bound (#30045)
Sending an image or file with no typed text to a model with skills
bound replaced the (empty) message text with the list of skill names,
so the model answered with its skill catalog instead of handling the
attachment. The empty-message guard added for #24929 fired on any
empty last user text without checking for attachments.

The guard now skips the fallback when the current message carries
files, read from the user_message object the frontend sends with the
request. Attachment-only messages then go out exactly as they do on
models without skills. A bare skill selection with no attachment still
gets the fallback, so the provider 400 from #24929 stays fixed.

Request-level files were not usable as the signal: that list carries
the model's knowledge and folder files, so a bare skill selection on a
knowledge model would have gone out empty again.

Fixes #30040
2026-09-16 10:19:28 -04:00
..
data refac: mv backend files to /open_webui dir 2024-09-04 16:54:48 +02:00
internal refac 2026-09-06 17:13:32 -04:00
migrations chore: format 2026-08-25 16:53:53 -04:00
models refac 2026-09-15 22:47:03 -04:00
retrieval fix: sync Playwright loader spins a CPU core when a page opens a WebSocket (#30050) 2026-09-15 22:51:37 -04:00
routers fix: default converted Responses API function tools to strict=false (#30046) 2026-09-16 10:19:08 -04:00
socket fix: keep a failed lock release from masking cancellation (#29979) 2026-09-13 20:37:51 -05:00
static refac 2026-09-06 17:27:30 -04:00
storage refac 2026-09-06 17:13:32 -04:00
tools fix: steer models to replace_range in the replace_note_content tool description (#30048) 2026-09-15 22:51:49 -04:00
utils fix: keep attachment-only messages intact when skills are bound (#30045) 2026-09-16 10:19:28 -04:00
__init__.py perf: allow disabling websocket per-message-deflate (#28613) 2026-08-24 18:46:07 -04:00
alembic.ini fix: Alembic CLI commands from failing 2025-08-15 04:17:47 -04:00
config.py refac 2026-09-16 00:02:48 -04:00
constants.py refac 2026-08-29 16:14:32 -04:00
env.py refac: correct the ENABLE_CHAT_RESPONSE_STREAM_INPLACE_APPEND comments (#30066) 2026-09-16 10:08:46 -04:00
events.py refac 2026-08-16 23:21:00 -07:00
functions.py fix: honor bypass_system_prompt on the pipe route (#28739) 2026-08-19 11:08:02 -07:00
main.py refac 2026-09-16 00:02:48 -04:00
tasks.py fix: stop tracking tasks under an empty item id (#29980) 2026-09-13 20:28:54 -05:00