-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
startup migrations: unreadable file in one plugin dir (EACCES) is classified as "migrations did not complete cleanly" and blocks the whole gateway #109833
Copy link
Copy link
Closed
Labels
P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.A non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:crash-loopCrash, hang, restart loop, or process-level availability failure.Crash, hang, restart loop, or process-level availability failure.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.A non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
2026.7.1's post-core plugin payload smoke check fails on an unreadable
package.jsonand reports it through the startup-migration gate, refusing gateway readiness. A filesystem-permission problem on one optional plugin is (a) misclassified as a state-migration failure and (b) fatal to the whole gateway.Reproduction
One plugin dir under the state dir (
extensions/whatsapp/in our case) was root-owned withpackage.jsonmode 600, from an old provisioning step; the gateway runs as an unprivileged user. 2026.6.11 booted fine for weeks with that state, it never ran this check. On 2026.7.1:(and then the process segfaults rather than exiting non-zero, filed as #109831.)
Why the classification matters
The per-plugin detail line is accurate and actionable. But the headline is "startup migrations did not complete cleanly", and in a real incident that framing sent us auditing migration state (leftover sidecars, shared-state namespaces) before anyone looked at file ownership.
openclaw update repair, which the message suggests, also cannot fix a permission problem.Expected (either would do)
Related
Found during the same upgrade as #109832 (sidecar gate) and #109831 (SIGSEGV failure path); the fix on our side was
chown -R node:node extensions/.