{"record":{"id":"b4dda4babdd0844d","repo":"tinyhumansai/openhuman","slug":"wait-child-e","errorCode":null,"errorMessage":"wait child: {e}","messagePattern":"wait child: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/inference/provider/claude_code/driver.rs","lineNumber":462,"sourceCode":"                for delta in mapper.handle(ev) {\n                    if let Some(tx) = ctx.stream {\n                        let _ = tx.send(delta).await;\n                    }\n                }\n            }\n        }\n        for ev in parser.end() {\n            for delta in mapper.handle(ev) {\n                if let Some(tx) = ctx.stream {\n                    let _ = tx.send(delta).await;\n                }\n            }\n        }\n\n        let status = child\n            .wait()\n            .await\n            .map_err(|e| anyhow::anyhow!(\"wait child: {e}\"))?;\n        Ok::<_, anyhow::Error>(status)\n    })\n    .await;\n\n    let status = match timed {\n        Ok(inner) => inner?,\n        Err(_elapsed) => {\n            log::error!(\n                \"[claude-code][driver] turn timeout ({TURN_TIMEOUT:?}) exceeded; killing child\"\n            );\n            // kill_on_drop handles cleanup, but explicit kill gives us\n            // a chance to collect stderr.\n            let _ = child.kill().await;\n            anyhow::bail!(\n                \"[claude-code][driver] turn timed out after {:?}\",\n                TURN_TIMEOUT\n            );\n        }","sourceCodeStart":444,"sourceCodeEnd":480,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/inference/provider/claude_code/driver.rs#L444-L480","documentation":"Waiting for the claude child process to exit (after stdout reached EOF and the parser was ended) failed — the OS wait syscall on the child errored. The turn's output was already consumed; this failure means the exit status is unknown, so the driver cannot distinguish success from a signal.","triggerScenarios":"Thrown at src/openhuman/inference/provider/claude_code/driver.rs:462 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the turn","Check for zombie/orphaned claude processes","Investigate OS-level process issues if recurrent"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}