{"record":{"id":"319340be453b4b28","repo":"tinyhumansai/openhuman","slug":"playwright-backend-failed","errorCode":null,"errorMessage":"Playwright backend failed","messagePattern":"Playwright backend failed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/tools/impl/browser/playwright_backend.rs","lineNumber":194,"sourceCode":"            self.daemon = None;\n            anyhow::bail!(\"Playwright daemon response id mismatch\");\n        }\n\n        if response.success {\n            tracing::debug!(\n                request_id = id,\n                action = %action,\n                \"[browser::playwright] action completed\"\n            );\n            Ok(response.data.unwrap_or_else(|| json!({ \"ok\": true })))\n        } else {\n            tracing::debug!(\n                request_id = id,\n                action = %action,\n                error = ?response.error,\n                \"[browser::playwright] action failed\"\n            );\n            anyhow::bail!(\n                \"{}\",\n                response\n                    .error\n                    .unwrap_or_else(|| \"Playwright backend failed\".to_string())\n            )\n        }\n    }\n}\n\nasync fn write_request(daemon: &mut PlaywrightDaemon, line: &[u8]) -> Result<()> {\n    tracing::trace!(\"[browser::playwright] writing request to daemon\");\n    daemon\n        .stdin\n        .write_all(line)\n        .await\n        .context(\"Failed to write Playwright request\")?;\n    daemon\n        .stdin","sourceCodeStart":176,"sourceCodeEnd":212,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/tools/impl/browser/playwright_backend.rs#L176-L212","documentation":"Generic failure sentinel from the Playwright backend: the daemon answered the request but with success=false, so the response's error text is surfaced as the action's failure. The daemon connection itself is kept; only the requested browser action failed.","triggerScenarios":"Thrown at src/openhuman/tools/impl/browser/playwright_backend.rs:194 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the response error in the debug log to see which step of the action failed","Fix the page-level cause: invalid selector, element not found, navigation interrupted, or page closed","Retry after correcting the selector or waiting for the page to settle"],"exampleFix":null,"handlingStrategy":"fallback","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-14T05:17:10.506Z"}