fix: Skip automatic plugin license writes in read-only mode - #19546
fix: Skip automatic plugin license writes in read-only mode#19546mvanhorn wants to merge 1 commit into
Conversation
c224839 to
e1ae327
Compare
|
Are you setting |
|
Yes — independently. That is the case this gates. In core So the failing path is a deployment that sets the service flag itself — project config committed to the repo and applied at deploy, with writes locked at runtime. If you would rather it keyed on |
Description
Gate only the automatic plugin-license persistence block in
Api::processResponseHeaders()on the project config service’sreadOnlystate. Continue processing non-mutating response metadata, including license-domain and license-info cache updates, so read-only environments can still consume update responses. LeavePlugins::setPluginLicenseKey()and its explicit controller/install callers unchanged, preserving their current validation and read-only enforcement when a user directly requests a license change.Craftnet API responses can include
X-Craft-Plugin-Licenses, whichApi::processResponseHeaders()currently persists throughPlugins::setPluginLicenseKey(). When project config is read-only, a returned key that differs from the deployed config reachesProjectConfig::set()and throwsNotSupportedException, preventing the Updates utility from displaying otherwise valid update information. The thread’s stack trace identifies this automatic response-header path, and a missing plugin license key supplies a concrete reproduction. A later report about project-config writes during database migrations is a separate deployment flow and is outside this fix.Fixes #17750
Related issues
Not applicable to this change.