Appearance
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:
- Authenticate with GitHub API
- Check 4 repos for new commits (4 serial API calls)
- Read and write state files
- 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 deniedThe 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-auditOr run the update as root:
bash
sudo npm i -g openclaw@latestOpenClaw'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:
"
messagetoolreadaction 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