{"record":{"id":"8bfee37dee9e277b","repo":"Hmbown/CodeWhale","slug":"cannot-queue-a-parent-message-for-agent-agent-id","errorCode":null,"errorMessage":"Cannot queue a parent message for agent {agent_id}: status is {} (only running children accept messages)","messagePattern":"Cannot queue a parent message for agent (.+?): status is (.+?) \\(only running children accept messages\\)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/tools/subagent/mod.rs","lineNumber":5352,"sourceCode":"        })\n    }\n\n    /// Queue-only message entrypoint for live children. Terminal records are\n    /// immutable receipts, not mailboxes, so the message surface fails closed\n    /// instead of acknowledging undeliverable work.\n    pub fn queue_running_parent_message(\n        &mut self,\n        agent_ref: &str,\n        text: String,\n    ) -> Result<ParentMailReceipt> {\n        let agent_id = self.resolve_agent_ref(agent_ref)?;\n        let status = self\n            .agents\n            .get(&agent_id)\n            .map(|agent| agent.status.clone())\n            .ok_or_else(|| anyhow!(\"Agent {agent_id} not found\"))?;\n        if status != SubAgentStatus::Running {\n            return Err(anyhow!(\n                \"Cannot queue a parent message for agent {agent_id}: status is {} (only running children accept messages)\",\n                subagent_status_name(&status)\n            ));\n        }\n        self.queue_parent_message(&agent_id, text, false)\n    }\n\n    pub(crate) fn queue_running_parent_message_for_session(\n        &mut self,\n        active_session_id: &str,\n        agent_ref: &str,\n        text: String,\n    ) -> Result<ParentMailReceipt> {\n        let agent_id = self.resolve_agent_ref_for_session(active_session_id, agent_ref)?;\n        self.queue_running_parent_message(&agent_id, text)\n    }\n\n    /// Queue mail and attempt a live wake (`agents/followup`).","sourceCodeStart":5334,"sourceCodeEnd":5370,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/tools/subagent/mod.rs#L5334-L5370","documentation":"Status guard in queue_running_parent_message: the resolved agent's status is not a running state (completed/failed/cancelled), so queuing a parent message is refused. Terminal records are immutable receipts, not mailboxes — the surface fails closed rather than acknowledging undeliverable work.","triggerScenarios":"Thrown at crates/tui/src/tools/subagent/mod.rs:5352 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the agent's status and only message agents that are running","If the agent completed, spawn a new agent for follow-up work","Retrieve the finished agent's result instead of trying to queue more input"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}