openclaw - ✅(Solved) Fix [Bug]: Signal SSE consumer times out after 10s while /api/v1/events works via curl [2 pull requests, 3 comments, 4 participants]

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#74741Fetched 2026-04-30 06:20:33
View on GitHub
Comments
3
Participants
4
Timeline
7
Reactions
3
Timeline (top)
commented ×3cross-referenced ×2labeled ×2

OpenClaw’s Signal channel times out and does not record inbound activity even though the configured signal-cli SSE endpoint is reachable and emits received Signal messages via curl.

Error Message

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms [signal] SSE connection lost, reconnecting...

Root Cause

OpenClaw’s Signal channel times out and does not record inbound activity even though the configured signal-cli SSE endpoint is reachable and emits received Signal messages via curl.

Fix Action

Fixed

PR fix notes

PR #74744: fix(signal): keep SSE receive stream open

Description (problem / solution / changelog)

Summary

Fixes the native Signal /api/v1/events consumer so the long-lived SSE stream no longer inherits the bounded RPC/check 10s deadline by default.

Root Cause

The Signal client used DEFAULT_TIMEOUT_MS for both bounded HTTP calls and the long-lived SSE receive stream. When signal-cli kept /api/v1/events quiet until the next inbound event, OpenClaw could abort the stream after 10 seconds and reconnect repeatedly before observing inbound activity.

Linked Issue

Fixes #74741.

Why This Is Safe

The change is scoped to the SSE event-stream opener. Explicit timeoutMs values are still honored for callers that need a bounded header wait, and the existing stream abort, HTTP status failure, buffer limit, parse, cleanup, and reconnect paths remain unchanged.

Security / Runtime Controls Unchanged

This does not change Signal account selection, allowlists, DM/group policy, authentication, provider routing, secret handling, message parsing limits, network destinations, or command/tool execution policy. The fix relies on runtime HTTP stream lifecycle and abort handling, not prompt text.

Tests Run

  • pnpm test extensions/signal/src/client.test.ts -- --reporter=verbose
  • git diff --check
  • pnpm exec oxfmt --check --threads=1 extensions/signal/src/client.ts extensions/signal/src/client.test.ts
  • pnpm changed:lanes --json
  • pnpm check:changed

Note: I refreshed the local install with pnpm install before the final pnpm check:changed rerun because node_modules had stale oxlint 1.61.0 while current package.json requires 1.62.0. No tracked dependency files changed.

Overlap

This overlaps #73086, which also addresses the idle Signal SSE timeout. Chosen path: keep this draft as the smaller issue-linked alternative for #74741; if #73086 lands first, this draft should be closed instead of merged.

Out Of Scope

  • No Signal send/RPC/check deadline changes.
  • No reconnect/backoff policy changes.
  • No config default, docs, generated artifact, or migration changes.
  • No live Signal account or external signal-cli integration run in this PR.

Contributing Note

AI-assisted change; reviewed against the final diff and validated with the focused checks above.

Made with Cursor

Changed files

  • extensions/signal/src/client.test.ts (modified, +26/-1)
  • extensions/signal/src/client.ts (modified, +18/-11)

PR #73086: fix(signal): keep idle SSE monitor open [AI-assisted]

Description (problem / solution / changelog)

Summary

AI-assisted patch, human-reviewed and locally validated on the targeted Signal lanes.

  • Problem: the native Signal signal-cli SSE event stream can remain healthy while idle, but OpenClaw applied the generic 10s HTTP response deadline to the long-lived /api/v1/events stream.
  • Why it matters: a healthy but quiet Signal daemon could produce repeated Signal SSE connection timed out after 10000ms errors and reconnect churn instead of waiting for the next inbound event.
  • What changed: streamSignalEvents now accepts an optional timeout, the low-level SSE opener treats timeoutMs <= 0 as "no header deadline", and the monitor opens the long-lived event stream with timeoutMs: 0.
  • What did NOT change (scope boundary): Signal send/RPC deadlines, health-check deadlines, reconnect/backoff behavior, access-control logic, and non-Signal integrations are unchanged.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes N/A
  • Related #16085
  • This PR fixes a bug or regression

Duplicate check: I searched open PRs for the exact Signal SSE timeout text, openSignalEventStream, keep idle SSE, and Signal SSE connection lost. I did not find an existing open PR for this idle native SSE timeout. #16085 is adjacent Signal transport work, but does not address the native idle /api/v1/events timeout.

Root Cause (if applicable)

  • Root cause: the native Signal event stream is a long-lived SSE connection, but the client reused the generic SIGNAL_HTTP_TIMEOUT_MS deadline that is appropriate for bounded RPC/check requests.
  • Missing detection / guardrail: Signal client tests covered SSE event parsing and header timeout failures, but not the valid case where headers arrive and then the stream remains idle until abort.
  • Contributing context (if known): this was observed on a live native Signal setup where OpenClaw repeatedly logged the 10s SSE timeout even though the Signal daemon was still reachable.

Regression Test Plan (if applicable)

  • Coverage level that should have caught this:
    • Unit test
    • Seam / integration test
    • End-to-end test
    • Existing coverage already sufficient
  • Target test or file: extensions/signal/src/client.test.ts
  • Scenario the test should lock in: an SSE stream that sends headers and then stays idle should remain open when the caller disables the deadline, and should close only when the abort signal fires.
  • Why this is the smallest reliable guardrail: it exercises the HTTP/SSE client behavior directly without requiring a live signal-cli daemon or external Signal account.
  • Existing test that already covers this (if any): N/A
  • If no new test is added, why not: N/A

User-visible / Behavior Changes

Signal channel monitors no longer reconnect every 10 seconds solely because the native SSE event stream is idle. Quiet-but-healthy Signal event streams remain open until an event, transport error, or abort.

Diagram (if applicable)

Before:
signal-cli /api/v1/events idle stream -> 10s response deadline -> timeout -> reconnect loop

After:
signal-cli /api/v1/events idle stream -> timeoutMs=0 for monitor SSE -> wait for event/error/abort

Security Impact (required)

  • New permissions/capabilities? (Yes/No) No
  • Secrets/tokens handling changed? (Yes/No) No
  • New/changed network calls? (Yes/No) No
  • Command/tool execution surface changed? (Yes/No) No
  • Data access scope changed? (Yes/No) No
  • If any Yes, explain risk + mitigation: N/A

Repro + Verification

Environment

  • OS: macOS local clean upstream worktree for tests; Linux native Signal deployment for the original runtime symptom
  • Runtime/container: Node.js 25.9.0 locally; native signal-cli HTTP/SSE deployment for the observed issue
  • Model/provider: N/A
  • Integration/channel (if any): Signal
  • Relevant config (redacted): native Signal HTTP/SSE URL; no secrets included

Steps

  1. Start a Signal SSE endpoint that accepts /api/v1/events, sends response headers, and then remains idle without sending event frames.
  2. Open the Signal monitor event stream.
  3. Wait longer than 10 seconds.
  4. Abort the monitor stream.

Expected

  • The idle stream remains open past 10 seconds when the monitor disables the SSE header/body deadline.
  • The stream exits on abort, stream error, or explicit connection close.

Actual

  • Before this patch, the monitor treated the healthy idle stream as Signal SSE connection timed out after 10000ms and entered reconnect churn.
  • After this patch, the new unit test verifies that an idle SSE stream waits for abort when the deadline is disabled.

Evidence

Attach at least one:

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Relevant pre-fix runtime log observed on the native deployment:

Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms

Local validation from this clean branch:

pnpm test extensions/signal/src/client.test.ts extensions/signal/src/monitor.tool-result.pairs-uuid-only-senders-uuid-allowlist-entry.test.ts
# passed: 2 test files, 16 tests

pnpm test:extension signal
# passed: 22 test files, 185 tests

pnpm check:changed
# passed: extension typecheck, extension test typecheck, extension lint, import-cycle guard, conflict-marker guard

pnpm check
# passed

pnpm build
# passed after allowing the runtime-postbuild nested install path to complete

Full-suite note:

pnpm test
# targeted Signal shard passed during the full run, but the complete high-parallel local suite failed after one Vitest worker hit ERR_WORKER_OUT_OF_MEMORY.

OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test
# attempted using the documented low-memory setting; the local run was stopped after no-output watchdog timeouts on broad runtime/agentic shards.

I also reran the likely OOM shard in isolation:

pnpm test test/vitest/vitest.wizard.config.ts
# passed: 6 test files, 52 tests

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios: the Signal SSE client keeps an idle response stream open when timeoutMs: 0; timeout behavior still rejects streams that do not send headers before the default deadline; the monitor passes timeoutMs: 0 only for the long-lived Signal event stream.
  • Edge cases checked: malformed RPC JSON, oversized RPC responses, Signal check failures, SSE HTTP status failures, missing headers, idle stream abort, oversized SSE buffers/events, monitor sender allowlist handling.
  • What you did not verify: a complete local full-suite pass; the broad suite hit local resource/no-output limits as noted above. I did not verify a maintainer CI environment or a live external Signal account in this upstream worktree.

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? (Yes/No) Yes
  • Config/env changes? (Yes/No) No
  • Migration needed? (Yes/No) No
  • If yes, exact upgrade steps: N/A

Risks and Mitigations

  • Risk: disabling the monitor SSE deadline could keep a broken-but-not-closed TCP connection around longer than before.
    • Mitigation: this applies only to the long-lived monitor event stream; bounded Signal RPC/check operations keep their deadlines, and the existing reconnect/backoff path still handles stream errors, closes, and aborts.

Changed files

  • extensions/signal/src/client.test.ts (modified, +18/-0)
  • extensions/signal/src/client.ts (modified, +26/-9)
  • extensions/signal/src/monitor.tool-result.pairs-uuid-only-senders-uuid-allowlist-entry.test.ts (modified, +2/-0)
  • extensions/signal/src/monitor.ts (modified, +2/-0)
  • extensions/signal/src/sse-reconnect.ts (modified, +3/-0)

Code Example

OpenClaw 2026.4.27 (cbc2ba0)
Node v22.22.2
signal-cli HTTP API 0.14.3

---

+614*********

---

openclaw gateway call channels.status --params '{"probe":true}'

---

curl -N -v 'http://127.0.0.1:8080/api/v1/events?account=%2B614********' \
  -H 'Accept: text/event-stream'

---

+614********

---

openclaw gateway call channels.status --params '{"probe":true}'

---

curl -N -v 'http://127.0.0.1:8080/api/v1/events?account=%2B614********' \
  -H 'Accept: text/event-stream'

---

openclaw gateway call channels.status --params '{"probe":true}'

---

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms
[signal] SSE connection lost, reconnecting...

---

"signal": {
  "configured": true,
  "baseUrl": "http://127.0.0.1:8080",
  "probe": {
    "ok": true,
    "status": 200,
    "error": null,
    "elapsedMs": 25,
    "version": "0.14.3"
  },
  "running": true
}

---

"dataMessage": {
  "message": "ping"
}

---

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms
[signal] SSE connection lost, reconnecting...

---

"lastInboundAt": null,
"lastOutboundAt": null

---

Gateway:

{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 7.8s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:05:43.329Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:05:43.330+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 7.8s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:13.825Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:13.828+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 10142ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.001Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.002+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 10142ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.113Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.116+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.181Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.181+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:34.277Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:34.277+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 1.175s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:34.280Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:34.281+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 1.175s..."}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:45.462Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:45.463+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 2.258s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:45.466Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:45.470+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 2.258s..."}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:57.739Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:57.739+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 4.574s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:57.743Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:57.743+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 4.574s..."}
{"0":"Downloading signal-cli 0.14.3 (signal-cli-0.14.3-Linux-native.tar.gz)…","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T00:31:19.262Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T00:31:19.263+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Downloading signal-cli 0.14.3 (signal-cli-0.14.3-Linux-native.tar.gz)…"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (gateway.auth.token, tools.web, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal, wizard, meta.lastTouchedVersion, meta.lastTouchedAt, channels.signal.dmPolicy, channels.signal.allowFrom, channels.signal.receiveMode, channels.signal.startupTimeoutMs)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.201Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.203+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"config change detected; evaluating reload (gateway.auth.token, tools.web, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal, wizard,meta.lastTouchedVersion, meta.lastTouchedAt, channels.signal.dmPolicy, channels.signal.allowFrom, channels.signal.receiveMode, channels.signal.startupTimeoutMs)"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change requires gateway restart (gateway.auth.token, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.217Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.218+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"config change requires gateway restart (gateway.auth.token, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"signal SIGUSR1 received","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.224Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.224+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal SIGUSR1 received"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  Shutdown - Received SIGTERM signal, shutting down ...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:29.866Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:29.866+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  Shutdown - Received SIGTERM signal, shutting down ..."}
{"0":"{\"subsystem\":\"plugins\"}","1":"[plugins] signal failed during register from /usr/lib/node_modules/openclaw/dist/extensions/signal/index.js: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js'","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"plugins\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.182Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.183+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] signal failed during register from /usr/lib/node_modules/openclaw/dist/extensions/signal/index.js: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js'"}
{"0":"{\"subsystem\":\"plugins\"}","1":"[plugins] 1 plugin(s) failed to initialize (register: signal). Run 'openclaw plugins list' for details.","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"plugins\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.960Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.961+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] 1 plugin(s) failed to initialize (register: signal). Run 'openclaw plugins list' for details."}
{"0":"{\"subsystem\":\"gateway\"}","1":"[plugins] plugin failed during register: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js' (plugin=signal, source=/usr/lib/node_modules/openclaw/dist/extensions/signal/index.js)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.965Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.966+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] plugin failed during register: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js' (plugin=signal, source=/usr/lib/node_modules/openclaw/dist/extensions/signal/index.js)"}
{"0":"{\"subsystem\":\"gateway/health-monitor\"}","1":"[signal:default] health-monitor: restarting (reason: stopped)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/health-monitor\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:25.287Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:25.289+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[signal:default] health-monitor: restarting (reason: stopped)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"signal SIGTERM received","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:35.453Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:35.454+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal SIGTERM received"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 8.8s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:55.688Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:55.688+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 8.8s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:55.786Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:55.787+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:41:23.740Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:41:23.742+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:41:23.749Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:41:23.749+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 43.7s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:28.807Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:28.809+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 43.7s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:29.033Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:29.034+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 16092ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:45.397Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:45.466+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 16092ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:52.747Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:52.755+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:52.984Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:52.986+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"Signal: \u001b[38;5;78mconfigured\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:00:10.177Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:00:10.178+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal: \u001b[38;5;78mconfigured\u001b[39m"}
{"0":"- agent:main:signal:direct:+61********* (81m ago)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:00:10.192Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:00:10.192+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"- agent:main:signal:direct:+61********* (81m ago)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (1 plugin: signal; 10.4s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:32.318Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:32.318+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (1 plugin: signal; 10.4s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:32.698Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:32.700+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 11152ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:44.066Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:44.066+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 11152ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:53.588Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:53.592+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:53.761Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:53.761+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"Signal: \u001b[38;5;78mconfigured\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:15:17.191Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:15:17.193+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal: \u001b[38;5;78mconfigured\u001b[39m"}
{"0":"- agent:main:signal:direct:+61********* (96m ago)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:15:17.216Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:15:17.218+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"- agent:main:signal:direct:+61********* (96m ago)"}

Signal (curl):

> User-Agent: curl/8.5.0
> Accept: text/event-stream
>
< HTTP/1.1 200 OK
< Date: Thu, 30 Apr 2026 00:50:42 GMT
< Transfer-encoding: chunked
< Content-type: text/event-stream
<
event:receive
data:{"envelope":{"source":"+61---------","sourceNumber":"+61---------","sourceUuid":"165e3d64-beb4-443c-bcf3-0f3f533822ef","sourceName":"Kynan Hughes","sourceDevice":1,"timestamp":1777510252836,"serverR
eceivedTimestamp":1777510253148,"serverDeliveredTimestamp":1777510253150,"typingMessage":{"action":"STARTED","timestamp":1777510252836}},"account":"+61*********"}

event:receive
data:{"envelope":{"source":"+61---------","sourceNumber":"+61---------","sourceUuid":"165e3d64-beb4-443c-bcf3-0f3f533822ef","sourceName":"Kynan Hughes","sourceDevice":1,"timestamp":1777510255725,"serverR
eceivedTimestamp":1777510256069,"serverDeliveredTimestamp":1777510256070,"dataMessage":{"timestamp":1777510255725,"message":"ping","expiresInSeconds":0,"isExpirationUpdate":false,"viewOnce":false}},"acco
unt":"+61*********"}
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

OpenClaw’s Signal channel times out and does not record inbound activity even though the configured signal-cli SSE endpoint is reachable and emits received Signal messages via curl.

Steps to reproduce

  1. Run OpenClaw gateway as a systemd user service on:
OpenClaw 2026.4.27 (cbc2ba0)
Node v22.22.2
signal-cli HTTP API 0.14.3
  1. Configure the Signal channel for account:
+614*********
  1. Confirm OpenClaw reports the Signal channel as configured/running and that the probe succeeds:
openclaw gateway call channels.status --params '{"probe":true}'
  1. Confirm the raw Signal SSE endpoint works independently:
curl -N -v 'http://127.0.0.1:8080/api/v1/events?account=%2B614********' \
  -H 'Accept: text/event-stream'
  1. Send a Signal message to:
+614********
  1. Run the OpenClaw channel status probe again:
openclaw gateway call channels.status --params '{"probe":true}'

Expected behavior

When the raw signal-cli SSE endpoint returns HTTP 200 and emits event:receive records for the configured account, OpenClaw should consume those same events without timing out and should update the Signal account status accordingly.

Specifically, after sending a Signal message that appears in:

curl -N -v 'http://127.0.0.1:8080/api/v1/events?account=%2B614********' \
  -H 'Accept: text/event-stream'

OpenClaw should record inbound activity for the Signal channel, for example by setting lastInboundAt to a non-null timestamp in:

openclaw gateway call channels.status --params '{"probe":true}'

and should not repeatedly log:

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms
[signal] SSE connection lost, reconnecting...

Actual behavior

OpenClaw reports the Signal channel as configured and running, and the probe succeeds:

"signal": {
  "configured": true,
  "baseUrl": "http://127.0.0.1:8080",
  "probe": {
    "ok": true,
    "status": 200,
    "error": null,
    "elapsedMs": 25,
    "version": "0.14.3"
  },
  "running": true
}

The raw Signal SSE endpoint works independently. curl receives event:receive with a dataMessage, for example:

"dataMessage": {
  "message": "ping"
}

However, OpenClaw repeatedly logs:

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms
[signal] SSE connection lost, reconnecting...

After the Signal message is received by the raw SSE endpoint, OpenClaw still shows no recorded inbound or outbound activity:

"lastInboundAt": null,
"lastOutboundAt": null

OpenClaw version

2026.4.27 (cbc2ba0)

Operating system

Ubuntu 24.04

Install method

npm global, running as systemd user service, no docker.

Model

N/A — Signal channel / gateway issue, not model-specific

Provider / routing chain

OpenClaw gateway -> local signal-cli HTTP API 0.14.3 at http://127.0.0.1:8080

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Gateway:

{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 7.8s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:05:43.329Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:05:43.330+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 7.8s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:13.825Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:13.828+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 10142ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.001Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.002+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 10142ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.113Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.116+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:24.181Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:24.181+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:34.277Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:34.277+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 1.175s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:34.280Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:34.281+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 1.175s..."}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:45.462Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:45.463+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 2.258s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:45.466Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:45.470+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 2.258s..."}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:57.739Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:57.739+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE stream error: Error: Signal SSE connection timed out after 10000ms"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"Signal SSE connection lost, reconnecting in 4.574s...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:07:57.743Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:07:57.743+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal SSE connection lost, reconnecting in 4.574s..."}
{"0":"Downloading signal-cli 0.14.3 (signal-cli-0.14.3-Linux-native.tar.gz)…","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T00:31:19.262Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T00:31:19.263+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Downloading signal-cli 0.14.3 (signal-cli-0.14.3-Linux-native.tar.gz)…"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (gateway.auth.token, tools.web, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal, wizard, meta.lastTouchedVersion, meta.lastTouchedAt, channels.signal.dmPolicy, channels.signal.allowFrom, channels.signal.receiveMode, channels.signal.startupTimeoutMs)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.201Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.203+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"config change detected; evaluating reload (gateway.auth.token, tools.web, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal, wizard,meta.lastTouchedVersion, meta.lastTouchedAt, channels.signal.dmPolicy, channels.signal.allowFrom, channels.signal.receiveMode, channels.signal.startupTimeoutMs)"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change requires gateway restart (gateway.auth.token, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.217Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.218+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"config change requires gateway restart (gateway.auth.token, plugins.entries.ollama, plugins.entries.openai, plugins.entries.signal)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"signal SIGUSR1 received","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:25.224Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:25.224+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal SIGUSR1 received"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  Shutdown - Received SIGTERM signal, shutting down ...","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:33:29.866Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147:14","fileName":"subsystem-rHhUC6qs.js","fileNameWithLine":"subsystem-rHhUC6qs.js:147","fileColumn":"14","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-rHhUC6qs.js:147","method":"logToFile"}},"time":"2026-04-30T00:33:29.866+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  Shutdown - Received SIGTERM signal, shutting down ..."}
{"0":"{\"subsystem\":\"plugins\"}","1":"[plugins] signal failed during register from /usr/lib/node_modules/openclaw/dist/extensions/signal/index.js: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js'","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"plugins\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.182Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.183+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] signal failed during register from /usr/lib/node_modules/openclaw/dist/extensions/signal/index.js: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js'"}
{"0":"{\"subsystem\":\"plugins\"}","1":"[plugins] 1 plugin(s) failed to initialize (register: signal). Run 'openclaw plugins list' for details.","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"plugins\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.960Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.961+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] 1 plugin(s) failed to initialize (register: signal). Run 'openclaw plugins list' for details."}
{"0":"{\"subsystem\":\"gateway\"}","1":"[plugins] plugin failed during register: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js' (plugin=signal, source=/usr/lib/node_modules/openclaw/dist/extensions/signal/index.js)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:35:14.965Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:35:14.966+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[plugins] plugin failed during register: Error: ENOENT: no such file or directory, open '/home/kbot/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-4eca5026e977/dist/doctor-completion-9-9bC0rQ.js' (plugin=signal, source=/usr/lib/node_modules/openclaw/dist/extensions/signal/index.js)"}
{"0":"{\"subsystem\":\"gateway/health-monitor\"}","1":"[signal:default] health-monitor: restarting (reason: stopped)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/health-monitor\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:25.287Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:25.289+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[signal:default] health-monitor: restarting (reason: stopped)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"signal SIGTERM received","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:35.453Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:35.454+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal SIGTERM received"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 8.8s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:55.688Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:55.688+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 8.8s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:40:55.786Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:40:55.787+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:41:23.740Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:41:23.742+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:41:23.749Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:41:23.749+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 43.7s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:28.807Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:28.809+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (8 plugins: acpx, bonjour, browser, device-pair, memory-core, phone-control, signal, talk-voice; 43.7s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:29.033Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:29.034+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 16092ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:45.397Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:45.466+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 16092ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:52.747Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:52.755+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T00:59:52.984Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T00:59:52.986+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"Signal: \u001b[38;5;78mconfigured\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:00:10.177Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:00:10.178+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal: \u001b[38;5;78mconfigured\u001b[39m"}
{"0":"- agent:main:signal:direct:+61********* (81m ago)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:00:10.192Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:00:10.192+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"- agent:main:signal:direct:+61********* (81m ago)"}
{"0":"{\"subsystem\":\"gateway\"}","1":"http server listening (1 plugin: signal; 10.4s)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:32.318Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:32.318+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"http server listening (1 plugin: signal; 10.4s)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"[default] starting provider (http://127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:32.698Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:32.700+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"[default] starting provider (http://127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal daemon not ready after 11152ms (connect ECONNREFUSED 127.0.0.1:8080)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:44.066Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:44.066+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal daemon not ready after 11152ms (connect ECONNREFUSED 127.0.0.1:8080)"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:53.588Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:53.592+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  DaemonCommand - Starting daemon in single-account mode for +61*********"}
{"0":"{\"subsystem\":\"gateway/channels/signal\"}","1":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{\"subsystem\":\"gateway/channels/signal\"}","parentNames":["openclaw"],"date":"2026-04-30T01:14:53.761Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150:14","fileName":"subsystem-Izr-DYZz.js","fileNameWithLine":"subsystem-Izr-DYZz.js:150","fileColumn":"14","fileLine":"150","filePath":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/subsystem-Izr-DYZz.js:150","method":"logToFile"}},"time":"2026-04-30T01:14:53.761+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"signal-cli: INFO  HttpServerHandler - Started HTTP server on /127.0.0.1:8080"}
{"0":"Signal: \u001b[38;5;78mconfigured\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:15:17.191Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:15:17.193+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"Signal: \u001b[38;5;78mconfigured\u001b[39m"}
{"0":"- agent:main:signal:direct:+61********* (96m ago)","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-30T01:15:17.216Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147:46","fileName":"console-DnTGmMkY.js","fileNameWithLine":"console-DnTGmMkY.js:147","fileColumn":"46","fileLine":"147","filePath":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js","filePathWithLine":"/usr/lib/node_modules/openclaw/dist/console-DnTGmMkY.js:147","method":"console.log"}},"time":"2026-04-30T01:15:17.218+00:00","hostname":"ubuntu-s-1vcpu-512mb-10gb-syd1","message":"- agent:main:signal:direct:+61********* (96m ago)"}

Signal (curl):

> User-Agent: curl/8.5.0
> Accept: text/event-stream
>
< HTTP/1.1 200 OK
< Date: Thu, 30 Apr 2026 00:50:42 GMT
< Transfer-encoding: chunked
< Content-type: text/event-stream
<
event:receive
data:{"envelope":{"source":"+61---------","sourceNumber":"+61---------","sourceUuid":"165e3d64-beb4-443c-bcf3-0f3f533822ef","sourceName":"Kynan Hughes","sourceDevice":1,"timestamp":1777510252836,"serverR
eceivedTimestamp":1777510253148,"serverDeliveredTimestamp":1777510253150,"typingMessage":{"action":"STARTED","timestamp":1777510252836}},"account":"+61*********"}

event:receive
data:{"envelope":{"source":"+61---------","sourceNumber":"+61---------","sourceUuid":"165e3d64-beb4-443c-bcf3-0f3f533822ef","sourceName":"Kynan Hughes","sourceDevice":1,"timestamp":1777510255725,"serverR
eceivedTimestamp":1777510256069,"serverDeliveredTimestamp":1777510256070,"dataMessage":{"timestamp":1777510255725,"message":"ping","expiresInSeconds":0,"isExpirationUpdate":false,"viewOnce":false}},"acco
unt":"+61*********"}

Impact and severity

Affected users/systems/channels: OpenClaw gateway using the Signal channel with local signal-cli HTTP API 0.14.3.

Severity: Blocks Signal channel workflow. The channel reports as configured/running and the raw signal-cli SSE endpoint receives messages, but OpenClaw does not record inbound activity.

Frequency: Repeated during observation. OpenClaw logs show repeated SSE timeout/reconnect messages.

Consequence: Signal messages can be received by signal-cli but are not reflected in OpenClaw channel status, leaving lastInboundAt as null; this can cause Signal onboarding or message handling to appear successful at the probe level while inbound delivery through OpenClaw is not working.

Additional information

No response

extent analysis

TL;DR

The Signal channel in OpenClaw is not recording inbound activity due to repeated SSE connection timeouts and reconnections, despite the raw signal-cli SSE endpoint receiving messages.

Guidance

  1. Verify signal-cli version: Ensure that the signal-cli version (0.14.3) is compatible with OpenClaw and the Node.js version (22.22.2) being used.
  2. Check OpenClaw configuration: Review the OpenClaw configuration for the Signal channel to ensure it is correctly set up and the baseUrl is pointing to the correct signal-cli HTTP API endpoint (http://127.0.0.1:8080).
  3. Investigate SSE connection issues: Look into the repeated SSE connection timeouts and reconnections, as this seems to be the primary cause of the issue. This might involve checking the signal-cli logs or the OpenClaw logs for more detailed error messages.
  4. Test with a different Signal account: Try configuring the Signal channel with a different account to see if the issue is account-specific or a more general problem.

Example

No specific code example can be provided without more context about the OpenClaw or signal-cli configurations. However, ensuring that the signal-cli daemon is running and accessible via http://127.0.0.1:8080 is crucial.

Notes

  • The issue seems to be related to the communication between OpenClaw and the signal-cli HTTP API, specifically with maintaining a stable SSE connection.
  • The fact that curl can receive messages from the signal-cli SSE endpoint suggests that the issue might be on the OpenClaw side or in how it interacts with signal-cli.

Recommendation

Apply a workaround by adjusting the SSE connection timeout settings in OpenClaw or signal-cli, if possible, to see if increasing the timeout reduces the frequency of disconnections. If not, consider upgrading signal-cli or OpenClaw to the latest versions,

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When the raw signal-cli SSE endpoint returns HTTP 200 and emits event:receive records for the configured account, OpenClaw should consume those same events without timing out and should update the Signal account status accordingly.

Specifically, after sending a Signal message that appears in:

curl -N -v 'http://127.0.0.1:8080/api/v1/events?account=%2B614********' \
  -H 'Accept: text/event-stream'

OpenClaw should record inbound activity for the Signal channel, for example by setting lastInboundAt to a non-null timestamp in:

openclaw gateway call channels.status --params '{"probe":true}'

and should not repeatedly log:

[signal] SSE stream error: Error: Signal SSE connection timed out after 10000ms
[signal] SSE connection lost, reconnecting...

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING