工具大全
亲手实测作者:Coocon2026年8月6日383 次阅读约 2 分钟阅读

Claude Code 报 No conversation found to continue:你的 -p 会话被交互模式过滤掉了

官方文档怎么说

CLI 参考里 --continue 的语义非常简单:继续当前目录下最近的一次会话。没有任何附加条件——不区分这个会话是交互模式开的,还是 claude -p "..." 无头模式跑出来的。

这正是很多自动化工作流的基础假设:脚本里用 -p 批量干活,出问题了人再用 --continue 进交互模式接手排查。

实测发生了什么

macOS + Claude Code v2.1.220,一个干净的空目录,四步实验(终端为真实 TTY):

$ claude --max-turns 1 -p 'The answer is 42. Reply only with: OK'
OK

$ claude --continue
No conversation found to continue        # ← BUG:会话明明存在

$ claude -p --continue "What did I ask earlier?"
42                                        # ← 无头续聊完全正常

$ CLAUDE_CODE_ENTRYPOINT=sdk-cli claude --continue
# ← 交互界面正常打开,且完整加载了 -p 会话的历史

第 2 步和第 3 步的对比是关键:同一份会话数据,无头模式续得上,交互模式说找不到。会话文件好端端躺在 ~/.claude/projects/<项目路径>/ 下的 .jsonl 里——我们检查过,-p 创建的会话和交互会话存储在同一个位置、同一种格式。

坑在哪:一次过滤逻辑的误伤

这是 v2.1.90 引入的回归。那个版本的变更说明写着:"Changed --resume picker to no longer show sessions created by claude -p or SDK invocations"——--resume 的会话选择器不再展示 -p/SDK 创建的会话,这本身是合理的产品决策(选择器里全是脚本跑的一次性会话确实很吵)。

问题是这层过滤被同时应用到了 --continue。而 --continue 的语义是"继续最近的会话",压根不该关心会话怎么创建的。于是:

  • 目录里最近(或仅有)的会话是 -p 创建的 → 交互 --continue 把它过滤掉 → 报 No conversation found to continue
  • 无头路径 -p --continue 在早期 issue(#43013)后被修过 → 一直正常
  • 数据层无损:会话元数据里的 entrypoint 字段、jsonl 内容全部完好

GitHub 上的 issue(#82536,报告环境 Fedora + tmux)与我们在 macOS 上的复现相互印证——这是跨平台的逻辑层 bug,不是环境问题。从 v2.1.90 到 v2.1.220+ 持续存在。

两条实测可用的绕行

1. 只需要续着问一句 → 用无头续聊(最简单)

claude -p --continue "接着刚才的结果,帮我看下 X"

2. 需要进交互模式接手 → 加环境变量前缀

CLAUDE_CODE_ENTRYPOINT=sdk-cli claude --continue

这个变量让 CLI 以 SDK 入口的身份启动,绕过交互模式的会话过滤。实测交互界面正常打开、历史完整加载,后续操作与普通会话无异。发现此绕行的是 issue 作者,我们在 macOS 上验证有效。

另外注意一个排查陷阱:如果你通过管道或重定向运行 claude --continue(stdout 非 TTY),报错文案会变成 No deferred tool marker found in the resumed session——同一个 bug 的另一张面孔,别被它带偏去查什么 "tool marker"。

适用边界

  • 影响 v2.1.90 起的所有版本(本文实测 v2.1.220,issue 报告同版本,截稿时官方未修复、无关联 PR)
  • 只影响交互模式的 --continue/--resume 对 -p/SDK 会话的发现;无头 -p --continue 不受影响
  • macOS 与 Fedora 双平台复现,与模型无关
  • 按过滤机制推断(此条未单独实测):目录里同时存在交互会话和更新的 -p 会话时,交互 --continue 会跳过 -p 会话接上较旧的交互会话——不报错,但接的不是真正的"最近一次",比直接报错更隐蔽

这类实测,每周六汇总一封

订阅码农早餐:每天 8:00 一封 AI 编程早报,每周六另附本周 Claude Code / Codex / 本地模型的实测和踩坑汇总。

相关文章

Claude Code 上下文太长怎么办:Prompt is too long 会自动压缩,中转站 / DeepSeek 的 maximum context length 却不会(实测)

Claude Code 靠报错文案判断「上下文太长」:后端说 prompt is too long 或 input is too long for requested model,它会自动压缩对话后重发,用户无感;DeepSeek 和 OpenAI 风格中转返回的 This model's maximum context length is …,它不认识,直接报 API Error: 400,每轮都失败。手动 /compact 有效;更好的办法是用 CLAUDE_CODE_MAX_CONTEXT_TOKENS(非 claude- 模型 ID)或 CLAUDE_CODE_AUTO_COMPACT_WINDOW(claude- 模型 ID)告诉它真实上限,让它提前压缩。Claude Code 2.1.285 + 本地 stub 实测。

claude-codedeepseek+6
pitfalls2026年10月5日8 min
132

Claude Code 一直卡住、转圈没反应怎么办:后端不回时它要等 6 分钟,重试满 10 次可能卡一个多小时(实测)

Claude Code 转圈不动、或者停在 Retrying in 0s,多半是后端没有回数据。实测 2.1.285(API key + ANTHROPIC_BASE_URL):后端不回响应头时每次等 6 分钟(360 秒)才判超时,把 API_TIMEOUT_MS 调到 60 万、90 万也不变,只能调小;默认重试 10 次,总共可能卡一个多小时。中转站如果把回复缓冲到生成完才返回,超过 6 分钟的回复永远拿不到。按 Esc 可以随时中断。全部在本地 stub 上实测。

claude-code中转站+6
pitfalls2026年10月5日10 min
138

Claude Code 429 怎么办:Request rejected (429) 原文、会重试多久、retry-after 超过 60 秒直接放弃(实测)

Claude Code 遇到 429 会先自动重试,最多 10 次、约 3 分钟。retry-after 不超过 60 秒时会等满再试(实测 10 秒、60 秒都恢复成功),61 秒及以上一次都不重试,立刻报 API Error: Request rejected (429)。中转站(new-api)的中文限流提示会原样显示,空 body 显示 status code (no body)。交互模式下每句话会同时发 2 个请求,限流额度消耗也是 2 倍。全部在本地 stub 上实测,Claude Code 2.1.285。

claude-code中转站+5
pitfalls2026年10月4日9 min
122

Clash Verge 开了 TUN 虚拟网卡反而上不了网:Hysteria2 流量绕回 TUN 自己,Tailscale 又把 DNS 截走了

macOS 上的 Clash Verge Rev 2.5.6,系统代理模式一切正常,一打开 TUN(虚拟网卡)就连百度都打不开。直接连 mihomo 内核的 API 排查,发现是两个独立的根因叠在一起:一是 Hysteria2 节点的 UDP 出站没有绑定到物理网卡,被 TUN 路由吸回自己,形成回环;二是系统 DNS 被 Tailscale MagicDNS(100.100.100.100)接管,查询走 Tailscale 的 utun,Clash 的 dns-hijack 拦不到,拿回来的是被污染的 IP。修法只需两段 Merge 覆写:route-exclude-address 把节点 IP 排除出 TUN,再打开 sniffer 从 SNI 还原域名。文中每一步都附复现命令和实测输出。

故障排查tailscale+7
pitfalls2026年10月4日6 min
52