Skip to content

Orchestrator marks soft-failed worker tasks as success=true #70

Description

@Shearerbeard

Problem

In execute_task, the Ok(result_str) arm after rig's multi_turn loop marks TaskStatus::Complete, success=true whenever the loop terminates without a rig-level error. The result text is never inspected. A worker that enters a duplicate call loop and writes "I was unable to complete the task" is indistinguishable from genuine success.

This means:

  • build_task_context embeds soft-failure text as PRIOR_WORK for dependents
  • ready_tasks() unblocks dependents that should be blocked
  • The coordinator has no structural signal forcing a replan

Evidence

Live SSE captures from SRE integration testing show "success": true on tasks where the worker explicitly reported inability to complete, counted as task_failed_count: 0 in analysis.

Solution

After stream_and_forward returns, check the escalation flag set by the duplicate-call guard (#69). If set, run the worker response through maybe_create_artifact (inline if short, artifact pointer if long) and return Err so the task is marked Failed and dependents are blocked in the DAG. The coordinator sees the worker's findings via the existing reflection prompt and can read_artifact for long outputs.

Related code

  • crates/aura/src/orchestration/orchestrator.rs — execute_task flag check after stream_and_forward
  • crates/aura/src/orchestration/types.rs — ready_tasks() blocks dependents on TaskStatus::Failed

Activity

  1. dhable commented on Sep 30, 2026

    @dhable
    Contributor

    This was fixed in c188acf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions