快速结论:该报错出现在 LiteLLM 仓库自带的 rust-wheel CI 测试中,OCR 回调测试断言一个来自 CustomLogger 的 post-success 异常会向上传播,但当前 hook 只重抛 CustomGuardrail 的异常,因此断言失败。优先排查测试期望与 async_post_call_success_deployment_hook 当前异常契约是否一致。
适用环境:LiteLLM main 分支(提交 87a7052fe8);运行 .github/workflows/test-rust.yml 中的 rust-wheel 作业。Issue 未提供具体操作系统、Python、CUDA、显卡或依赖版本。
最快修复方案:暂无确认的一步修复方案。Issue 由 #42775 解决,该 PR 把 blocking OCR callback 改为使用 CustomGuardrail;修复已在 main 上,重复 PR #42719 已关闭。
注意事项:该修复针对的是测试与 hook 异常契约不一致的问题,而非用户侧运行 LiteLLM 时的配置问题。若你在自己的测试中依赖 CustomLogger 异常在 post-success hook 中向上抛出,需要按当前契约调整为使用 CustomGuardrail。
问题场景
在 LiteLLM 仓库的 CI 中运行 rust-wheel 作业(源自 .github/workflows/test-rust.yml)时,失败测试为 tests/test_litellm_rust/ocr/test_callbacks.py::test_native_aocr_state_stashed_before_a_blocking_hook_raises_reaches_failure_callbacks。该测试期望一个来自 CustomLogger 的 post-success 异常传播到调用方,但实际 hook 会吞掉该异常并继续执行。同一失败也出现在 Realtime PR(#35600)上,而该分支并未改动此 hook 或 OCR bridge。
报错原文
Failed: DID NOT RAISE ... Blocked
1 failed, 307 passed, 46 skipped
tests/test_litellm_rust/ocr/test_callbacks.py::test_native_aocr_state_stashed_before_a_blocking_hook_raises_reaches_failure_callbacks
原因分析
最可能的原因:async_post_call_success_deployment_hook 会捕获来自 CustomLogger 的异常,只重抛来自 CustomGuardrail 的异常。测试用 Block(CustomLogger) 抛出异常并断言其传播,与 hook 当前实现契约不一致。Issue 明确指出这是测试断言与当前契约不匹配,而非 hook 本身的行为回归。
环境排查
- 确认当前检出的 LiteLLM 分支/提交是否为
main的87a7052fe8或该问题已修复之后的版本。 - 确认
.github/workflows/test-rust.yml中rust-wheel作业的触发分支与提交。 - 确认失败测试是否为
tests/test_litellm_rust/ocr/test_callbacks.py::test_native_aocr_state_stashed_before_a_blocking_hook_raises_reaches_failure_callbacks。 - 检查是否包含将 blocking OCR callback 改为
CustomGuardrail的 #42775 改动。
解决步骤
- 确认失败现象:运行
rust-wheel作业,核对输出是否为Failed: DID NOT RAISE ... Blocked,以及统计是否为1 failed, 307 passed, 46 skipped。 - 定位测试与 hook 的契约差异:确认
async_post_call_success_deployment_hook捕获CustomLogger异常、仅重抛CustomGuardrail异常的行为。 - 按 Issue 结论对齐修复:采用 #42775 的做法,把 blocking OCR callback 改为
CustomGuardrail,使异常传播行为与测试断言一致。 - 若在本地分支复现,可优先尝试同步
main上 #42775 的改动;注意 #42719 为重复 PR 且已关闭,不要误用。 - 重新运行
rust-wheel作业进行验证。
验证方法
重新运行 rust-wheel 作业,确认 test_native_aocr_state_stashed_before_a_blocking_hook_raises_reaches_failure_callbacks 通过,且不再出现 Failed: DID NOT RAISE ... Blocked;整体统计不再是 1 failed。Issue 记录该修复已在 main 上生效。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[Bug] /v1/internal/model/load silently ignores `args` (loader flags like ctx-size, cache-type) — endpoint returns OK but model loads with UI](https://www.chat-gpts.plus/wp-content/uploads/2026/09/7577-f376545a-768x403.jpg)

