{"record":{"id":"dd0acce386b38546","repo":"NousResearch/hermes-agent","slug":"copilot-acp-method-failed-err-get-message-o","errorCode":null,"errorMessage":"Copilot ACP {method} failed: {err.get('message') or err}","messagePattern":"Copilot ACP (.+?) failed: (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"agent/copilot_acp_client.py","lineNumber":596,"sourceCode":"                    msg = inbox.get(timeout=0.1)\n                except queue.Empty:\n                    continue\n\n                if self._handle_server_message(\n                    msg,\n                    process=proc,\n                    cwd=self._acp_cwd,\n                    text_parts=text_parts,\n                    reasoning_parts=reasoning_parts,\n                ):\n                    continue\n\n                if msg.get(\"id\") != request_id:\n                    continue\n                if \"error\" in msg:\n                    err = msg.get(\"error\") or {}\n                    raise RuntimeError(\n                        f\"Copilot ACP {method} failed: {err.get('message') or err}\"\n                    )\n                return msg.get(\"result\")\n\n            stderr_text = \"\\n\".join(stderr_tail).strip()\n            if proc.poll() is not None and stderr_text:\n                if _is_gh_copilot_deprecation_message(stderr_text):\n                    raise RuntimeError(\n                        \"Hermes ACP mode requires the NEW GitHub Copilot CLI \"\n                        \"(github.com/github/copilot-cli), but the binary it just \"\n                        \"spawned is the deprecated `gh copilot` extension.\\n\\n\"\n                        \"Install the new CLI:\\n\"\n                        \"  npm install -g @github/copilot\\n\"\n                        \"  # then verify with: copilot --help\\n\\n\"\n                        \"If `copilot` already resolves to the new CLI but you still see this,\\n\"\n                        \"point Hermes at it explicitly:\\n\"\n                        \"  export HERMES_COPILOT_ACP_COMMAND=/path/to/new/copilot\\n\\n\"\n                        \"Alternative: use the `copilot` provider (no ACP, hits the Copilot API\\n\"\n                        \"directly with a Copilot subscription token) via `hermes setup`.\\n\\n\"","sourceCodeStart":578,"sourceCodeEnd":614,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/copilot_acp_client.py#L578-L614","documentation":"A JSON-RPC request to the Copilot ACP process returned an error response: the reply message contained an 'error' object, and this RuntimeError surfaces its message (or the raw error). It indicates the Copilot CLI itself rejected the request — e.g. initialize/session/prompt failed server-side — rather than a transport failure.","triggerScenarios":"Any _request(method, ...) call — 'initialize', 'session/new', 'session/prompt' — whose matching-id response has an 'error' field. Typical causes: unsupported protocol version, invalid session id, Copilot authentication/entitlement failure, malformed prompt payload.","commonSituations":"Copilot CLI not signed in or lacking an entitlement; version mismatch between Hermes' ACP expectations and the installed CLI; an expired/kicked session id reused after the process restarted.","solutions":["Read the embedded error message — it comes straight from the Copilot CLI and names the actual cause.","Sign in / refresh Copilot auth (copilot auth login or the CLI's login flow) and retry.","Update the Copilot CLI (npm install -g @github/copilot) to resolve protocol/version mismatches.","If the error persists, capture ~/.hermes/logs output and report with the exact ACP error text."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    result = client._request('session/prompt', {...})\nexcept RuntimeError as e:\n    if 'ACP' in str(e) and 'failed' in str(e):\n        # message embeds the CLI's own error — branch on auth vs protocol\n        ...","preventionTips":["Keep Copilot CLI signed in and entitled before using ACP mode","Keep CLI version in sync with Hermes expectations","Read the embedded ACP error text — it names the true cause"],"tags":["copilot","acp","jsonrpc","protocol"],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}