fix: gateway boots when a configured plugin payload is broken (#110239)

* fix: quarantine broken plugins during gateway startup

* fix(plugins): preserve degraded boot on package read errors

* fix(gateway): emit quarantine diagnostic once

* fix(gateway): refresh plugin quarantine every boot

* fix(gateway): harden plugin payload quarantine

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>

* fix(ci): satisfy plugin quarantine checks

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>

---------

Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
Vito Cappello
2026-07-17 22:50:50 -04:00
committed by GitHub
parent 73cf9ee908
commit cd1ab40632
29 changed files with 1724 additions and 131 deletions
+7
View File
@@ -289,6 +289,13 @@ serves your channels, not only a wrapper or supervisor.
| `OPENCLAW_NIX_MODE=1` blocks lifecycle commands | Confirm the install is managed by Nix | Change plugin selection in the Nix source instead of using plugin mutator commands |
| Dependency import fails at runtime | Check whether the plugin was installed through npm/git/ClawHub or loaded from a local path | Run `openclaw plugins update <id>`, reinstall the source, or install local plugin dependencies yourself |
When an enabled managed plugin fails payload verification during Gateway
startup, OpenClaw quarantines that exact installed plugin root for the boot and
continues serving other plugins. `openclaw status --all`, `openclaw health`,
and `openclaw doctor` report it as `configured-unavailable`. Fix or reinstall
the plugin, then restart the Gateway. A healthy explicit `plugins.load.paths`
override with the same plugin id is not quarantined by a stale broken install.
When stale plugin config still names a no-longer-discoverable channel plugin,
config validation downgrades that channel key to a warning instead of a hard
failure, so Gateway startup can still serve every other channel. Run