monad-developers / monad-developers/ultrafuzz

Resume terminal failed workflows with pending ready nodes

Open
#272 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug In Progress release-blocker
Dominant language
TypeScript
Stars
85
Forks
18
Avg merge
11h 10m
Merged PRs (30d)
194

Description

Summary

A durable Modal recovery can get stuck when the workflow backend reports a terminal failed run even though the Ultrafuzz durable state has no failed nodes and still has pending ready work to dispatch.

Evidence

R43 Aave v4 invariant-only run aave-v4-v0012-main-issue270-r43-invariant-only on main 4af20bf9b9e5833cc2e35e74a1080a46697779c6 reached all eight property-lens outputs (21 succeeded / 11 pending) and then the original sandbox exited resume-required.

The detached overseer automatically launched recovery attempts without manual run control:

  • generation 1 attempt 2 sandbox sb-hSxH59GnxxCelK60lzHU5G, stopped at 2026-08-06T09:07:50Z, no progress, worker diagnostic terminal-run-non-resumable
  • generation 2 attempt 3 sandbox sb-AD9BEDVQg96eHfFy14sq7b, stopped at 2026-08-06T09:23:27Z, no progress, same diagnostic

The durable state after attempt 3 is terminal failed with counts 21 succeeded / 11 pending. property-specification-fanin is pending, wait_reason: ready, next_eligible_action: dispatch, while there are no failed nodes. Events show both resume submissions were accepted, followed by immediate syncs with workflow_status: failed / workflow_state: failed and no fan-in dispatch.

Preserved evidence:

  • /home/ubuntu/ultrafuzz-private/aave-v4-v0012-n1-20260802/r43/r43-private-inspection-20260806T0909Z.json
  • /home/ubuntu/ultrafuzz-private/aave-v4-v0012-n1-20260802/r43/r43-private-inspection-20260806T0919Z.json
  • /home/ubuntu/ultrafuzz-private/aave-v4-v0012-n1-20260802/r43/r43-detached-overseer.log
  • /home/ubuntu/ultrafuzz-private/aave-v4-v0012-n1-20260802/r43/r43-recovery-state.json

Impact

The invariant-only Aave pipeline cannot naturally advance from property JSON/Markdown to fan-in, invariant setup, Recon, findings, and report, even though the next node is ready. Repeated Modal recoveries preserve the evidence but do not make progress.

Expected fix

Add a regression for terminal failed workflow state with no failed workflow tasks and pending ready durable nodes, then make resume recovery reset/fork/replay or otherwise rehydrate the backend so ready pending nodes dispatch instead of immediately re-finalizing as failed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the preserved inspection JSON files and detached-overseer log to confirm the terminal failed state, pending ready node, and accepted resume submissions. Trace the resume recovery, workflow-status sync, and ready-node dispatch entry points, then add the regression described in the issue. Done means a terminal failed workflow with no failed tasks and pending ready nodes resumes and dispatches the next node instead of immediately finalizing as failed.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.