If you run third-party context engine plugins — like the popular lossless-claw — a single faulty plugin could silently kill every channel connected to your OpenClaw instance. Discord, Telegram, WebChat: all unresponsive, with no obvious error pointing at the culprit. That changes with PR #66930, merged today by contributor openperf.
What Was Breaking
OpenClaw's resolveContextEngine() function is responsible for wiring up the active context engine for each agent run. When a third-party plugin registers a context engine factory that later throws during resolution — or returns an object that violates the ContextEngine contract — the exception previously propagated all the way up and crashed the turn.
The real sting: the broken factory stayed registered in the process-global plugin registry. That meant every subsequent agent run on every connected channel would hit the same failure. You'd effectively have a silent, permanent outage until you manually restarted the gateway or removed the offending plugin.
As issue #66887 documents, this wasn't a theoretical edge case — it was biting users with real third-party plugin setups.
The Fix
The fix introduces graceful fallback behavior in resolveContextEngine(). When a registered factory:
- throws during resolution, or
- returns an object that fails the
ContextEnginecontract check
…OpenClaw now catches the error, logs it, and falls back to the default legacy engine instead of propagating the failure.
This makes context engine plugin failures self-contained. A bad plugin crashes its own resolution path, not the entire agent runtime. Subsequent turns on all channels continue working normally with the fallback engine active.
The PR also adds test coverage for both failure modes — factory-throws and contract-violation — so this class of regression has guardrails going forward.
Why It Matters
Context engine plugins are one of the more powerful extension points in OpenClaw. They control how conversation context is built, compacted, and passed to the model. The ecosystem of third-party context engines is growing, and with more plugins comes more surface area for version mismatches and API contract violations.
Fault isolation at the plugin boundary is table-stakes infrastructure for a system that's meant to run unattended. This fix brings resolveContextEngine() in line with how OpenClaw already handles other plugin-failure modes — fail gracefully, keep running, surface the error in logs.
What to Expect
This fix is merged to main and will ship in the next release (likely v2026.4.15 or later today). If you're running third-party context engine plugins and have hit mysterious full-instance outages, this is the fix you've been waiting for.
In the meantime, you can track the fix directly at PR #66930 on GitHub.