快速结论:该报错通常发生在 LiteLLM Proxy 网关空闲超过 24 小时后恢复使用时,已过期的临时密钥触发删除流程,产生 404: {'error': 'No keys found'} 异常循环,最终导致代理停止转发模型请求。优先排查密钥过期清理逻辑与删除流程中的异常处理。
适用环境:LiteLLM 1.97.0(容器化部署,docker compose 方式),Python 3.13(容器内 /app/.venv 路径),使用管理 API 创建/自动删除临时密钥,配合 Claude Code 会话使用。操作系统与 CUDA 环境未在 Issue 中提及。
最快修复方案:暂无确认的一步修复方案。Issue 中报告者通过重启容器暂时解决了问题,但根本原因尚未确定,且维护者表示无法复现,最终关闭了该 Issue。
注意事项:重启容器只是临时措施,问题可能在下次空闲超过 24 小时后再次出现。维护者认为日志中的 404 异常可能只是孤立事件,与停止转发请求之间的因果关系未经证实。建议升级到最新版本并开启 DEBUG 日志观察。
问题场景
用户使用 Docker Compose 部署 LiteLLM Proxy 1.97.0,通过管理 API 在每次 Claude Code 会话前后创建和自动删除临时密钥(24 小时有效期)。网关闲置数天后,用户使用新的临时密钥启动 Claude Code 会话时收到不透明的 “API error”。重启容器后问题消失,日志显示代理陷入无限异常循环。
报错原文
fastapi.exceptions.HTTPException: 404: {'error': 'No keys found'}
litellm.proxy.proxy_server.delete_verification_tokens(): Exception occured - 404: {'error': 'No keys found'}
litellm.proxy.proxy_server.delete_key_fn(): Exception occured - 404: {'error': 'No keys found'}
原因分析
可能原因一:密钥过期清理流程对已过期且已删除的临时密钥执行了“二次删除”。当某个 Claude Code 会话异常终止(例如窗口被强制关闭)时,临时密钥可能未被正常自动删除;24 小时后密钥过期,代理的清理任务尝试删除这些密钥,但密钥已不存在或已被其它流程删除,触发 404 异常。该异常未被正确忽略,导致代理进入异常循环并停止转发请求。
可能原因二:Issue 维护者指出,LiteLLM 本身不会自动删除过期密钥,日志中的 404 可能只是孤立的会话删除缺失密钥,与停止转发请求无直接因果关系。代理停止转发可能是由其它未在日志中体现的问题导致。
环境排查
- 确认 LiteLLM Proxy 版本是否为 1.97.0,检查当前是否可升级到更高版本(该类型 bug 曾被多次修复)。
- 检查 Docker Compose 配置中的密钥过期清理参数(如
key_expiry相关配置),确认是否存在重复删除逻辑。 - 使用
LITELLM_LOG=DEBUG环境变量启动代理,获取更详细的调用堆栈,确认是谁在调用delete_verification_tokens。 - 排查管理 API 的密钥创建/删除流程,确认会话异常终止时密钥清理机制是否可靠。
- 检查容器日志中是否存在其他异常或错误,排除代理停止转发是由其它原因导致。
解决步骤
- 立即恢复服务:重启 LiteLLM 容器(
docker compose restart或docker compose down && docker compose up -d),确认请求转发恢复正常。 - 升级 LiteLLM 到最新版本,避免已在后续版本修复的密钥管理类 bug。
- 以
LITELLM_LOG=DEBUG模式启动代理,观察delete_verification_tokens的调用来源与触发条件。 - 检查密钥清理相关配置,确保不会对已不存在的密钥执行重复删除;如果可配置,建议增加对 404 异常的安全忽略处理。
- 优化临时密钥的生命周期管理:确保会话异常终止时(如进程被 kill),密钥能被及时清理或标记为过期,避免遗留过期密钥。
- 长期观察:如果问题可复现(例如模拟空闲 24 小时后恢复使用),可在 DEBUG 日志下完整记录事件序列,提交新的 Issue 附上详细日志。
验证方法
执行上述步骤后,使用 Claude Code 会话并正常调用模型请求,确认不再出现 “API error”。同时检查代理日志中是否仍有 404: No keys found 异常,且确认该异常不会导致代理停止响应。可尝试模拟“空闲 24 小时后再使用”的场景,验证问题是否真的由密钥过期触发。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[bug]: InvokeAI v6.14.0-RC1 Crashed while generating Krea-2 Image](https://www.chat-gpts.plus/wp-content/uploads/2026/09/9444-d6bdc60c-768x403.jpg)
![[Question]: Shared embedded chat URL fails to access documents after logout or when accessed by other users](https://www.chat-gpts.plus/wp-content/uploads/2026/09/15895-cf3f7033-768x403.jpg)
