{"record":{"id":"d98a6bb5c426f49d","repo":"tinyhumansai/openhuman","slug":"gmail-fetch-emails-error-err","errorCode":null,"errorMessage":"GMAIL_FETCH_EMAILS error: {err}","messagePattern":"GMAIL_FETCH_EMAILS error: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/agent/learning/linkedin_enrichment.rs","lineNumber":555,"sourceCode":"        ComposioClientKind::Direct(direct) => {\n            tracing::debug!(\n                \"[linkedin_enrichment][composio-direct] GMAIL_FETCH_EMAILS via direct tenant\"\n            );\n            direct_execute(\n                direct,\n                \"GMAIL_FETCH_EMAILS\",\n                Some(args),\n                &config.composio.entity_id,\n                None,\n            )\n            .await\n            .map_err(|e| anyhow::anyhow!(\"GMAIL_FETCH_EMAILS (direct) failed: {e:#}\"))?\n        }\n    };\n\n    if !resp.successful {\n        let err = resp.error.unwrap_or_else(|| \"unknown error\".into());\n        anyhow::bail!(\"GMAIL_FETCH_EMAILS error: {err}\");\n    }\n\n    // Walk the messages, decode HTML parts, and search for profile URLs.\n    let messages = resp\n        .data\n        .get(\"messages\")\n        .and_then(|v| v.as_array())\n        .cloned()\n        .unwrap_or_default();\n\n    for msg in &messages {\n        // Collect all text to search: plain messageText + decoded HTML parts.\n        let mut searchable = String::new();\n\n        // Plain text body (already decoded by Composio).\n        if let Some(text) = msg.get(\"messageText\").and_then(|v| v.as_str()) {\n            searchable.push_str(text);\n            searchable.push('\\n');","sourceCodeStart":537,"sourceCodeEnd":573,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/a221052e0df5b1f7598fceba7329fd1af95d6699/src/openhuman/agent/learning/linkedin_enrichment.rs#L537-L573","documentation":"Error \"GMAIL_FETCH_EMAILS error: {err}\" thrown in tinyhumansai/openhuman.","triggerScenarios":"Thrown at src/openhuman/agent/learning/linkedin_enrichment.rs:555 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a221052e0df5b1f7598fceba7329fd1af95d6699","analyzedAt":"2026-08-16T12:47:06.542Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}