快速结论:当 Iterate 与 If 分支输入之间存在超长普通节点链(约 480 个以上节点)时,GraphExecutionState.next() 会因递归深度超限抛出 RecursionError;优先检查 InvokeAI 是否为包含 PR #9843 修复的版本。
适用环境:Issue 中确认的是 main 分支 aa46003581(7.0.0-alpha.2-post),且在 #9789 相关代码上同样出现;未提供操作系统、Python、CUDA、显卡等环境信息。
最快修复方案:升级到包含 PR #9843 的 InvokeAI 版本。该 PR 将进入 If 分支的普通依赖遍历改为迭代实现,Issue 中称 1,000 节点回归测试在当时的 main 本地通过。
注意事项:修复针对的是“普通节点链进入 If 分支”的依赖遍历;Issue 未说明其他递归路径是否也受影响,也未给出具体可用的稳定版本号,升级前请确认目标版本已合入 PR #9843。
问题场景
用户在 InvokeAI 中构建包含 Iterate、If 和大量普通测试节点的计算图,节点数量约 400 时可执行,约 480 以上时触发该问题。Issue 中的复现代码创建了一个约 1,000 节点的 AnyTypeTestInvocation 链,接到 If 的 true_input,用于测试分支条件与值传递。
报错原文
RecursionError: maximum recursion depth exceeded
原因分析
根据 Issue 描述,报错位于 graph_if_runtime._get_effective_iteration_paths_for_edge。该函数在推断 If 的 frames 时,每遇到一个未准备的上游节点就递归一次;当进入 If 分支输入的上游节点链很长时,递归调用次数会超过 Python 的递归深度限制。实际会话处理器的调用栈更深,因此线上实际可承受的节点数可能低于测试环境。
环境排查
- 检查 InvokeAI 是否为
mainaa46003581(7.0.0-alpha.2-post)或包含相同代码的版本。 - 确认是否基于 #9789 相关改动。
- 统计从
Iterate到If分支输入之间的普通节点数量,重点关注数十到数百节点以上的长链。 - 检查调用该图的会话处理器栈深度;调用栈更深时可能更早触发。
- 查询已安装版本是否包含 PR #9843 的修复;Issue 中未提供具体发布版本号。
解决步骤
- 将 InvokeAI 更新到已合入 PR #9843 的版本;若使用源码运行,切换到包含该 PR 的
main。 - 用 Issue 中的复现脚本或自己的长节点链图重新执行,观察
GraphExecutionState.next()是否仍抛出RecursionError。 - 若仍需在旧版本上运行,可优先尝试临时缩短
Iterate到If分支输入之间的节点链,或减少长链中的普通节点数量;但这一方案仅基于 Issue 中“400 完成、480 以上失败”的描述,并非修复方案。
验证方法
重新运行长节点链工作流,确认 GraphExecutionState.next() 不再抛出 RecursionError,且 If 分支的 true/false 输入能按预期求值并完成收集。若本地有回归测试,可运行对应 1,000 节点测试,确认通过。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[bug]: Per-item If over a collected sibling-iterator zip is rejected as UnsupportedIfFramesError](https://www.chat-gpts.plus/wp-content/uploads/2026/10/9820-ced14590-768x403.jpg)
![[Bug]: Batch retrieve returns 403 for team-scoped models since v1.103.0 (authorize_model_for_key checks internal model_name_{team_id}_{uuid}](https://www.chat-gpts.plus/wp-content/uploads/2026/10/46958-8bc36f96-768x403.jpg)
![[Bug]: Request Failed Error Code: 500 Message: litellm.APIConnectionError: APIConnectionError: Hosted_vllmException -](https://www.chat-gpts.plus/wp-content/uploads/2026/10/43518-60da76fd-768x403.jpg)