mirror of
https://github.com/open-webui/open-webui.git
synced 2026-08-28 05:27:35 +00:00
A spec fetch that failed while the terminals orchestrator was still cold (e.g. right after a stack restart, while it removes conflicting stopped containers and re-provisions) used to overwrite the cached terminal server list in app state and Redis with an empty list. Since nothing on the message path ever refreshed that cache, every chat request then failed with "Terminal server '<id>' is unavailable" until an admin re-saved the connection settings. - set_terminal_servers: keep the last known good cached entry (same id and URL) for any enabled connection whose spec fetch failed, instead of caching its absence; wrap the Redis write in try/except so a Redis blip doesn't fail the request. - get_terminal_tools: rebuild the cache once when the requested terminal id is missing before raising "unavailable", so a stale or cold cache self-heals on the next message. - main.py: warm terminal server specs at startup whenever terminal connections exist; this was previously gated on classic tool server connections being configured. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N972k9EbZ4vR3JZfHSNqmK |
||
|---|---|---|
| .. | ||
| access_control | ||
| images | ||
| mcp | ||
| telemetry | ||
| actions.py | ||
| anthropic.py | ||
| asgi_middleware.py | ||
| ask_user.py | ||
| audit.py | ||
| auth.py | ||
| automations.py | ||
| calendar.py | ||
| channels.py | ||
| chat.py | ||
| chat_fork.py | ||
| chat_id.py | ||
| chat_variables.py | ||
| code_interpreter.py | ||
| context_compaction.py | ||
| embeddings.py | ||
| files.py | ||
| filter.py | ||
| groups.py | ||
| headers.py | ||
| json_codec.py | ||
| json_response.py | ||
| logger.py | ||
| memory.py | ||
| middleware.py | ||
| misc.py | ||
| model_ids.py | ||
| models.py | ||
| notifications.py | ||
| oauth.py | ||
| payload.py | ||
| pdf_generator.py | ||
| plugin.py | ||
| rate_limit.py | ||
| redis.py | ||
| response.py | ||
| sanitize.py | ||
| security_headers.py | ||
| session_pool.py | ||
| subagents.py | ||
| task.py | ||
| terminals.py | ||
| timers.py | ||
| tool_approval.py | ||
| tools.py | ||
| validate.py | ||
| valves.py | ||
| webhook.py | ||