bytedance/deer-flow

[Stability][BUG-007] Subagent completed task still renders as running

Closed

#3,118 opened on May 21, 2026

 (0 comments) (0 reactions) (0 assignees)Python (9,005 forks)batch import
help wanted

Repository metrics

Stars
 (67,767 stars)
PR merge metrics
 (Avg merge 2d 5h) (229 merged PRs in 30d)

Description

Parent stability dashboard: #3107

This issue tracks BUG-007 from #3107.

Problem

After a long Ultra task completed, the frontend still displayed a subagent task card as running.

Backend state at the same time indicated the run was terminal:

Source: database inspection after the run had ended.

runs.status=success
threads_meta.status=idle

The relevant parent-visible tool result was:

Source: checkpoint/state inspection of parent task tool result.

Error: Tool 'task' failed with TypeError: 'AsyncCallbackManager' object is not iterable. Continue with available context, or choose an alternative tool.

Code evidence

The frontend currently maps only these task result prefixes to terminal states:

Task Succeeded. Result:
Task failed.
Task timed out

The actual result starts with:

Error: Tool 'task' failed ...

So it falls through and remains rendered as in_progress.

Impact

  • A completed conversation looks like it is still doing work.
  • Users may wait unnecessarily.
  • It can make task retries or duplicate subagent work harder to reason about from the UI.

Expected behavior

Any terminal task-tool error should render as failed, not in-progress. Frontend state reconstruction should not depend on only a few exact English text prefixes.

Contributor guide