
bug: custom Filter inlet() is called but outlet() is not called after GitHub update in install
快速结论:该问题发生在通过 GitHub 源码更新 Open WebUI 后,用户自定义 Filter 的 outlet() 方法在常规聊天 UI 流程中不再被调用,但 inlet() 正常执行。优先排查来源更新是否完整,以及确认自定义 Filter 中 inlet() 和 outlet() 是否都声明为 async 函数(从 0.9.0 版本开始两者都必须为异步)。
问题场景
用户通过 Pinokio 安装 Open WebUI(Git Clone 方式),在从 GitHub 更新代码后,对自定义 Filter 进行测试:在管理员面板 → 函数中创建了一个极简的“Outlet Probe”检测 Filter,启用了该 Filter 并附加到模型上。在常规聊天 UI 中发送消息后,观察到 inlet() 执行,但 outlet() 从未被调用。
值得注意的是,同一实例中另一个名为 auto_memory 的现存 Filter 的 outlet() 仍正常工作;另外,在 Docker 部署的 Open WebUI v0.9.6 版本中,该自定义 Filter 表现正常。
报错原文
Observed logs:
[Outlet Probe] inlet called
[Outlet Probe] outlet called (this line NEVER appears)
For another filter "AI Transparency Marker":
[AI Transparency Marker v1.0.1] inlet appelé ; body_keys=['stream', 'model', 'messages', 'features', 'metadata', 'num_ctx']; messages=2; choices=None
(no outlet log ever appears either)
原因分析
可能原因:
- 从 GitHub 源码更新时,
outlet_filter_handler的相关代码可能未正确覆盖或存在回归缺陷,导致在特定流(非直接 API 调用的常规聊天 UI 流)中outlet()未被触发。 - Issue 作者提供的测试代码中
outlet()声明为async而inlet()为同步函数,但从 Open WebUI 0.9.0 起两者都必须为异步。虽然 Issue 作者声称观察到了该行为,但开发者 无法复现该问题——使用完全相同的“Outlet Probe”测试代码在开发版本中outlet()正常工作。 - 可能与 Pinokio 安装方式的更新过程不完整有关(与 Docker 安装表现不同)。
环境排查
- Open WebUI 版本:v0.9.6
- Ollama 版本:v0.30.7
- 操作系统:Linux Mint 21.3
- 浏览器:Firefox 152.0.1
- 安装方式:Git Clone(通过 Pinokio)
- 确认 两个 Filter 方法是否都声明为
async def(inlet 和 outlet 都需要) - 确认是否使用了最新的 Open WebUI 版本
- 检查是否通过直接 API 端点(如
/api/chat/completions)调用 —— 该情况下outlet()可能按设计不触发
解决步骤
- 可优先尝试:确保自定义 Filter 中
inlet()和outlet()都声明为async def(而非def),因为从 Open WebUI v0.9.0 开始两者都必须为异步。 - 检查 Open WebUI 安装是否为最新版本(Issue 作者已在使用最新版)。
- 如果通过 Pinokio/Git Clone 更新,尝试完全删除安装目录并重新克隆代码,然后重新安装依赖,确保更新完整覆盖。
- 创建一个极简测试 Filter(例如仅打印日志的
outlet()),以排除业务逻辑干扰。 - 尝试切换到 Docker 方式部署同一版本,测试自定义 Filter 的
outlet()是否正常工作——这有助于区分是源码更新问题还是安装方式差异。 - 检查浏览器控制台和后端容器日志中是否有其他错误或异常信息。
验证方法
在服务器/后端日志中搜索自定义 Filter 打印的 outlet() 日志(如 [Outlet Probe] outlet called)。如果该日志出现在每次聊天响应完成后,则问题已解决。如果仍只有 inlet() 日志,outlet() 不出现,请确认 Filter 方法签名是否一致且异步,并检查 Open WebUI 源码更新是否完整。


![[Bug]: test_flashinfer_cutlass_mxfp4_fused_moe accuracy mismatch on H20 (sm90) — 89% mismatch vs 20% threshold](https://www.chat-gpts.plus/wp-content/uploads/2026/06/46585-55e7134d-768x403.jpg)
