{"record":{"id":"368886ea13258fac","repo":"tinyhumansai/openhuman","slug":"worker-error-err","errorCode":null,"errorMessage":"{} worker error: {err}","messagePattern":"(.+?) worker error: (.+?)","errorType":"exception","errorClass":"PoolRunError","httpStatus":null,"severity":"error","filePath":"src/openhuman/runtime/pool/pool.rs","lineNumber":182,"sourceCode":"\n        self.jobs_total.fetch_add(1, Ordering::Relaxed);\n\n        // Recycle after N jobs, otherwise return the warm worker to the pool.\n        if worker.should_recycle(self.settings.recycle_after_jobs) {\n            tracing::debug!(\n                lang = self.launch.lang.id(),\n                jobs = worker.jobs_done(),\n                \"[runtime_pool] recycling worker after job budget\"\n            );\n            worker.shutdown();\n        } else {\n            self.idle.lock().await.push(worker);\n        }\n\n        if let Some(err) = response.error {\n            // The worker replied with a harness-level error: the job was\n            // dispatched (and may have run), so this is terminal.\n            return Err(PoolRunError::PostDispatch(anyhow::anyhow!(\n                \"{} worker error: {err}\",\n                self.launch.lang.id()\n            )));\n        }\n        Ok(PoolExecOutcome {\n            stdout: response.stdout,\n            stderr: response.stderr,\n            exit_code: response.exit_code,\n            timed_out: response.timed_out,\n            elapsed,\n            queue_wait,\n        })\n    }\n\n    /// Submit on a warm-or-fresh worker. A **pre-dispatch** failure (e.g. a\n    /// reused idle worker that died on write) respawns once — the job never ran,\n    /// so that is safe. A **post-dispatch** failure is terminal: the job may have\n    /// executed, so it is never re-run (no duplicate side effects). Returns the","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/runtime/pool/pool.rs#L164-L200","documentation":"A pooled language-runtime worker (language id interpolated into the prefix) replied to a job with an error response rather than a result. The pool itself is healthy — the worker was already recycled or returned to the idle set — but the job it executed failed worker-side: a script crash, an internal worker exception, or a job payload the worker could not process. The error is the worker's reported failure, propagated to the caller of `execute`.","triggerScenarios":"Thrown at src/openhuman/runtime/pool/pool.rs:182 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the chained worker error — it names the actual script/runtime failure","Fix the offending script or job input; transient worker crashes often stem from OOM or unhandled script exceptions","If a specific job consistently kills workers, run it with more worker memory or split it into smaller jobs"],"exampleFix":null,"handlingStrategy":"retry","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"}