Hmbown/CodeWhale · error
Fleet task must name one member from the explicitly…
Error message
Fleet task {} must name one member from the explicitly selected Fleet What it means
In exact-roster mode, every Fleet task must explicitly name one member of the selected Fleet via its worker member selector. freeze_fleet_task_members found a task with no worker selection at all, which cannot be frozen to a concrete member, so it bails.
Solutions
- Set task.worker to name one member that exists in the selected Fleet.
- Disable exact-roster mode if anonymous/role-posture tasks are intended.
- Remove or delete the task if it is no longer needed.
Example fix
// before
{"id": "t1"} // no worker
// after
{"id": "t1", "worker": {"member": "agent-42"}} Defensive patterns
Strategy: validation
Validate before calling
if require_exact_member { assert!(task.worker.as_ref().map_or(false, |w| w.member.is_some()), "task {} missing member", task.id); } Prevention
- Enforce member selection in the Fleet editor when exact roster is on
- Migrate legacy role-only tasks to member selection
- Validate tasks against roster mode before freezing
When it happens
Trigger: Calling freeze_fleet_task_members with require_exact_member=true and a task whose worker field is None — i.e. the task relies on legacy role-label posture instead of naming a member.
Common situations: Old task specs written before member-selection became required; a user clearing the member field in the Fleet editor while the fleet enforces an exact roster; migrating legacy role-based tasks into an exact-roster fleet.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- agent profile cannot be empty
- agent profile must be a simple token
- agent profile model must be a visible model id without…
- agent profile provider cannot be empty
- agent profile provider must be a simple provider id
AI-assisted analysis of Hmbown/CodeWhale@73e0f67d83 (2026-09-22).
Data as JSON: /api/errors/32d0bb0a7dff4da4.
Report an issue: GitHub.
Appendix: source
Thrown at crates/tui/src/fleet/worker_runtime.rs:150
/// Resolve and freeze every deterministic member selection before persistence.
///
/// Author-facing selectors may be ids, names, semantic roles, model labels, or
/// exact routes. The durable task stores the selected member's canonical id and
/// the identity/route inputs used for launch. Legacy `worker.role` remains a
/// posture when it does not name exactly one member; explicit
/// `worker.agent_profile` selectors fail closed when unknown or ambiguous, and
/// when the task's `worker.role` names a posture other than the selected
/// member's role.
pub(crate) fn freeze_fleet_task_members(
tasks: &mut [FleetTaskSpec],
agent_profiles: &[AgentProfile],
require_exact_member: bool,
) -> Result<()> {
for task in tasks {
let Some(worker) = task.worker.as_ref() else {
if require_exact_member {
bail!(
"Fleet task {} must name one member from the explicitly selected Fleet",
task.id
);
}
continue;
};
let explicit_selector = worker
.agent_profile
.as_deref()
.map(str::trim)
.filter(|selector| !selector.is_empty())
.map(str::to_string);
let legacy_role_selector = worker
.role
.as_deref()
.map(str::trim)
.filter(|selector| !selector.is_empty())
.map(str::to_string);View on GitHub (pinned to 73e0f67d83)