{"record":{"id":"85960701f97f99b7","repo":"odysseus-dev/odysseus","slug":"str-e-859607","errorCode":null,"errorMessage":"str(e)","messagePattern":"str\\(e\\)","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"routes/shell_routes.py","lineNumber":1471,"sourceCode":"                    *argv,\n                    stdout=asyncio.subprocess.PIPE,\n                    stderr=asyncio.subprocess.PIPE,\n                )\n                out, _err = await asyncio.wait_for(proc.communicate(), timeout=12)\n                txt = out.decode(\"utf-8\", errors=\"replace\").strip()\n                # The activate script can emit noise — take the last JSON line.\n                for line in reversed(txt.splitlines()):\n                    line = line.strip()\n                    if line.startswith(\"{\"):\n                        remote_details = _json.loads(line)\n                        remote_status = {\n                            name: _package_installed_from_probe(name, probe)\n                            for name, probe in remote_details.items()\n                            if isinstance(probe, dict)\n                        }\n                        break\n            except ValueError as e:\n                raise HTTPException(400, str(e))\n            except Exception as e:\n                remote_status = {}\n                remote_probe_error = f\"SSH package probe failed: {str(e)[:160]}\"\n            if \"llama_cpp\" in remote_names:\n                try:\n                    inner = (\n                        'export PATH=\"$HOME/.local/bin:$HOME/bin:'\n                        '$HOME/llama.cpp/build/bin:$HOME/llama.cpp/build-vulkan/bin:$PATH\"; '\n                        \"command -v llama-server 2>/dev/null || true\"\n                    )\n                    argv = _ssh_base_argv(host, ssh_port) + [inner]\n                    proc = await asyncio.create_subprocess_exec(\n                        *argv,\n                        stdout=asyncio.subprocess.PIPE,\n                        stderr=asyncio.subprocess.PIPE,\n                    )\n                    out, _err = await asyncio.wait_for(proc.communicate(), timeout=8)\n                    llama_server_path = out.decode(\"utf-8\", errors=\"replace\").strip().splitlines()","sourceCodeStart":1453,"sourceCodeEnd":1489,"githubUrl":"https://github.com/odysseus-dev/odysseus/blob/f9235ebbf13f693a6fd29ce70b097f6ec83705bf/routes/shell_routes.py#L1453-L1489","documentation":"Error \"str(e)\" thrown in odysseus-dev/odysseus.","triggerScenarios":"Triggered when the corresponding server-side validation or runtime check at the recorded location rejects the request or operation and returns this error message to the caller.","commonSituations":"See trigger scenarios.","solutions":["Check server logs for the full exception details.","Retry the operation after fixing the reported underlying error."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f9235ebbf13f693a6fd29ce70b097f6ec83705bf","analyzedAt":"2026-08-14T21:47:48.359Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}