🔧 Tech

Real bugs, real fixes. Code included.

2026-03-18

OpenClaw Feishu Plugin Conflict: From Deadlock to Unified Streaming Output

DevOps

Running OpenClaw's built-in Feishu plugin alongside the official openclaw-lark plugin creates a deadlock: enable the old plugin and all tools break; disable it and the main account goes offline. After a few hours of debugging, two hidden design assumptions were uncovered — and fixing them solved both the conflict and inconsistent streaming output in one shot.

2026-03-17

Cron Job Silent Skip After Timezone Switch: lastRunAt Misread

DevOps

After switching OpenClaw cron from UTC to Asia/Shanghai, the scheduler incorrectly marks the job as already run today and silently skips it — no errors. Root cause: lastRunAt stores the old UTC timestamp.

2026-03-16

All Cron Feishu Messages Fail After openclaw-lark Plugin Upgrade: open_id Changed

DevOps

Upgrading openclaw-lark changed the appId, which changed the Feishu open_id. 19 hardcoded references across jobs.json, .env, and scripts all broke with error 99992361 open_id cross app.

2026-03-15

Feishu Gateway Startup 'Duplicate Plugin' Warning: Root Cause and Fix

DevOps

openclaw gateway logs [warn] Duplicate plugin detected: feishu on startup. Caused by both explicit declaration and auto-load triggering simultaneously. No functional impact — safe to ignore, or remove the explicit entry from openclaw.json to suppress it.

2026-03-14

Using Gemini Native API for Image Generation Instead of Third-Party Aggregators: Zero Cost

AI Tools

Third-party image generation platforms charge $0.02–0.05 per image, but their underlying models are Google's Imagen/Gemini. Calling the native API directly with google-genai + GEMINI_API_KEY cuts cost to zero within the free tier (1,500 images/day as of 2026-03).

2026-03-13

Xiaohongshu Content Moderation: Tone Is Riskier Than Keywords

Content Ops

Account suspended for 7 days. The trigger wasn't product names or tech terms — it was tone words: '颠覆级' (revolutionary), '必学' (must-learn), '绝对需要' (absolutely need). The platform classifies this type of language as ad copy, not genuine sharing.

2026-03-12

Verify Skill Dependencies Right After Installing an OpenClaw Skill

Engineering

nano-banana-pro failed on first call because GRSAI_API_KEY wasn't set. Install does not equal ready-to-use. Run a smoke test immediately after installing any skill — check env vars, run the minimal case.

2026-03-11

Combine Multiple SSH Local Port Forwards Into One Command

DevOps

When forwarding multiple EC2 ports simultaneously (e.g. Chrome debug 18792 + admin panel 8899), don't open two terminals. Stack multiple -L flags in a single ssh command. Use ~/.ssh/config LocalForward to make it permanent.

2026-03-10

CloudFront Standard Logging Doesn't Work on the Free Tier

AWS

Enabled CloudFront Standard Logs with an S3 destination. IAM and S3 policies were correct. No log files appeared. Root cause: Standard Logging doesn't generate logs on the free tier. Switched to Cloudflare Web Analytics as a drop-in replacement.