HKUDS/nanobot · error · RuntimeError
signal-cli send failed: {response['error']}
Error message
signal-cli send failed: {response['error']} What it means
Error "signal-cli send failed: {response['error']}" thrown in HKUDS/nanobot.
Source
Thrown at nanobot/channels/signal/runtime.py:589
if not plain_text and not msg.media:
return
recipient_params = self._recipient_params(msg.chat_id)
chunks = split_message(plain_text, self._MAX_MESSAGE_LEN) if plain_text else [""]
chunk_styles = _partition_styles(plain_text, chunks, text_styles)
for i, chunk in enumerate(chunks):
params: dict[str, Any] = {"message": chunk}
if chunk_styles[i]:
params["textStyle"] = chunk_styles[i]
params.update(recipient_params)
if msg.media and i == 0:
params["attachments"] = msg.media
response = await self._send_request("send", params)
if "error" in response:
self.logger.error("Error sending Signal message: {}", response['error'])
raise RuntimeError(f"signal-cli send failed: {response['error']}")
else:
self.logger.debug(
f"Signal message sent, timestamp: {response.get('result', {}).get('timestamp')}"
)
except Exception:
self.logger.exception("Error sending Signal message")
raise
finally:
# Keep typing active across progress updates; stop on the final reply.
if not is_progress_message:
# Avoid immediate START->STOP for fast responses, which can be invisible
# in some Signal clients. Let indicator expire naturally (~15s).
await self._stop_typing(msg.chat_id, send_stop=False)
async def _sse_receive_loop(self) -> None:
"""Receive messages via Server-Sent Events (HTTP mode)."""
if not self._http:View on GitHub (pinned to 42f37dc4c0)
When it happens
Trigger: Thrown at nanobot/channels/signal/runtime.py:589 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26).
Data as JSON: /api/errors/955e315e8bfebba3.
Report an issue: GitHub.