Skip to content

Known Issues

Cron Job Timeout

Severity: 🔴 High

What's happening: The funnel-github-watch cron job runs every 30 minutes and times out at exactly 90,008ms every time.

json
{
  "lastRunStatus": "error",
  "lastError": "cron: job execution timed out",
  "lastDurationMs": 90008,
  "consecutiveErrors": 1
}

Why it's happening: The 90-second timeout is too short for the cron job's scope. The job tries to:

  1. Authenticate with GitHub API
  2. Check 4 repos for new commits (4 serial API calls)
  3. Read and write state files
  4. Potentially send a Slack DM

Under any network latency, this exceeds 90 seconds.

Compounding problem: The cron runs every 30 minutes, but HEARTBEAT.md says to only check GitHub 3×/day. Two systems are trying to do the same thing, in conflict.

Fix:

  • Option A (quick): Disable the cron job entirely. Rely on heartbeat's 3×/day GitHub check instead.
  • Option B (proper): Increase timeout to 300s, refactor job to be faster (parallel API calls), fix the conflict with heartbeat.

Version Stuck at 2026.3.2

Severity: 🟡 High

What's happening: Sam is on version 2026.3.2. The latest available is 2026.3.13 (checked 2026-03-18). 11 versions of bug fixes and features are being missed.

Why it's stuck: npm permissions error when trying to update:

npm error code EACCES
npm error syscall rename
npm error path /usr/lib/node_modules/openclaw/CHANGELOG.md
npm error errno -13
npm error Error: EACCES: permission denied

The ubuntu user doesn't have write permission to /usr/lib/node_modules/openclaw/.

Fix:

bash
sudo chown -R ubuntu:ubuntu /usr/lib/node_modules/openclaw
npm i -g openclaw@latest --no-fund --no-audit

Or run the update as root:

bash
sudo npm i -g openclaw@latest

OpenClaw's restart-sentinel.json shows a previous update attempt failed with this error on March 15.


Loop Incident

Severity: 🟡 High (resolved, but risk remains)

What happened (March 17, 2026): During a heartbeat session that was near auto-compaction, 77 conversation turns were removed. Sam got caught in a repeated message loop and sent the same Slack message to John approximately 100 times.

From 2026-03-17.md:

"Got caught in a repeated message loop — John flagged that my last message was repeated almost 100 times. Likely a heartbeat or polling loop gone wrong during pre-compaction session."

Root cause: Context trimming during compaction removed the "I just sent this message" context. Sam didn't know it had already acted, so it acted again. And again.

Current mitigation: None configured. Loop detection is not set up in openclaw.json.

Fix: Configure loop detection in openclaw.json. This is an OpenClaw built-in feature:

json
"agents": {
  "defaults": {
    "loopDetection": { "enabled": true, "maxSameToolCalls": 3 }
  }
}

(Check official docs for current config format.)


Commit Reporting Annoyance

Severity: 🟢 Behavioral (resolved by HEARTBEAT.md, but underlying cron still running)

What happened: Sam was reporting GitHub commit changes at every 30-minute heartbeat. John asked it to stop at least 5 times. HEARTBEAT.md was updated with an explicit ⛔ STOP section.

Current state: HEARTBEAT.md is updated. However, the cron job (funnel-github-watch) is still configured to run every 30 minutes and alert John when changes are found. The cron job and heartbeat are in conflict.

Fix: Disable the cron job (see cron timeout issue above).


tool_call XML Format Bug

Severity: 🟢 Minor

What's happening: When Sam uses the message tool to send Slack DMs, raw tool_call JSON/XML sometimes leaks into John's view. He sees the agent machinery instead of clean text.

From 2026-03-17.md:

"tool_call XML leaks into John's Slack messages — he sees raw JSON/code. Fix: reply with plain text directly to John, don't use message tool for DMs"

Workaround: Sam learned to reply with plain text for DMs to John. The sam-chat updates are fine.


message Tool Intermittent Availability

Severity: 🟢 Minor

From Sam's lessons learned:

"message tool read action is intermittent — sometimes available, sometimes not. Plan accordingly."

This appears to be a known quirk of the Slack message tool availability in different session contexts. No fix documented — just work around it.


Braze 25% Purchaser Gap

Severity: 🔴 High (but this is a FuturHealth integration issue, not an OpenClaw issue)

What's happening: 25% of purchasers don't appear in Braze. Legacy hex user IDs aren't mapping to Braze subscribers. All affected users are on the MICRO tirzepatide path.

This is not an OpenClaw bug — it's a FuturHealth integration bug. But it was discovered by Sam and needs to be tracked.

Status: Reported to sam-chat, tagged Christian + Alexandra + U06CVNAFW5N. 3-layer fix proposed.

See: Braze Operations


Workspace Git Remote Missing

Severity: 🟢 Low

What's happening: The workspace directory (.openclaw/workspace/) has a .git repository — commits are tracked. But there's no remote configured. If the Ubuntu server is lost or rebuilt, all workspace content (MEMORY.md, scripts, data files) is gone.

From workspace/.git/config: Only local configuration, no remote.

Fix: Set up a private GitHub repo for the workspace and push regularly. This could even be automated in the heartbeat.


See also: Gaps Summary | Missing Features | Automation & Cron

FuturHealth Internal — Confidential