[Bug] Workflow resume re-runs completed fetch agents instead of using journal cache

Open 💬 2 comments Opened Jun 11, 2026 by XianhaiC

Bug Description
---

  1. Workflow resume re-ran completed fetch agents instead of using the journal cache

Resumed a failed deep-research workflow with Workflow({scriptPath, resumeFromRunId}), unchanged script and identical args. Scope and Search phases returned from cache, but all 26
Fetch-phase agents re-spawned and re-ran live (visible in /workflows as fetch:unknown, each burning ~19k tokens), even though every fetch had completed successfully in the original run.
Expected: the entire completed prefix (scope, search, fetch, and the 6 completed verifications) to come back cached, with only the failed verification votes and synthesis re-running. The
fetch:unknown labels suggest the fetch agents' prompts/labels are constructed from something non-deterministic that breaks the cache key match across runs.

  1. Rate-limit failures reported as adversarial refutation

In the original run, the session hit its usage limit mid-verification. All 3 verification votes per claim failed with "You've hit your session limit," and the harness recorded those
claims as 0-0 (3 abstain) ✗ and placed them in the refuted array of the result. 19 claims were "killed" purely by infrastructure failure but labeled as if they failed fact-checking.
Infra failures should be distinguished from genuine refutation (e.g., an unverified bucket), and ideally the run should pause/retry rather than cascade ~50 agent failures.

  1. Workflow args delivered as JSON string, not parsed value

A hand-written continuation workflow received its args (passed as a JSON object in the tool call) as a raw string at runtime, so args.toVerify.map threw undefined is not an object. The
tool docs say args arrive as actual JSON values; either the parsing is inconsistent or string-args should be auto-parsed. Workaround was a typeof args === 'string' ? JSON.parse(args) :
args guard.

---
Session ID for reference: 9c188ca4-f5e6-4f53-913e-dbb564d8e628, failed run wf_be0f160c-bfc (original), wf_69b14433-f89 (args crash), wf_98bc3bad-2fb (working rerun, in progress).

Environment Info

  • Platform: darwin
  • Terminal: tmux
  • Version: 2.1.172
  • Feedback ID: 8ec7465c-5058-4e95-abc6-9c3ac9947c5c

Errors

[{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"The following domains are not accessible to our user agent: ['reddit.com']. Read more: https://support.anthropic.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler\"},\"request_id\":\"req_011CbvcMxM7DAG6ivPHFjJkb\"}\n    at generate (/$bunfs/root/src/entrypoints/cli.js:12:66015)\n    at makeRequest (/$bunfs/root/src/entrypoints/cli.js:52:7694)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-06-11T01:32:47.405Z"}]

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗