GeezerVison is showing github.com — updateConfiguration with a scope id returns the global value in its response · Issue #14638 · apache/cloudstack
updateConfiguration with a scope id returns the global value in its response #14638Descriptionproblem
On main, updateConfiguration with a scope id (zoneid, clusterid, storageid, accountid, domainid, imagestoreuuid or managementserverid) returns the global value of the setting in its response, not the value that was just set. The scoped value is stored correctly. listConfigurations with the same scope id shows it, and it takes effect.
$ cmk update configuration name=drs.algorithm value=condensed clusterid=<cluster>
{"name": "drs.algorithm", "value": "balanced", "scope": "cluster", ...} <- global value
$ cmk list configurations name=drs.algorithm clusterid=<cluster>
... "value": "condensed" <- the value that was set
A script or UI that checks the response sees the wrong value.
Cause:
ConfigurationManagerImpl.updateConfiguration(UpdateCfgCmd) ends with return _configDao.findByName(name);. That is the global configuration row, whatever the scope.
- Since api,server: normalize string empty value on config update #11770,
UpdateCfgCmd.setResponseValue() copies cfg.getValue() into the response. Before that change, it echoed the value from the request. So for a scoped update, the response now has the global value.
The same applies to the implicit scope a domain admin or a user gets when they call the API without a scope id.
versions
main (24.0.0-SNAPSHOT), since #11770. 4.22 and earlier echo the value from the request and are not affected.
The steps to reproduce the bug
- Note the global value of a cluster-scoped setting, for example
drs.algorithm (balanced by default).
updateConfiguration name=drs.algorithm value=condensed clusterid=<cluster>.
- The response's
value is balanced.
listConfigurations name=drs.algorithm clusterid=<cluster> returns condensed.
What to do about it?
Have updateConfiguration return the value that was set in the requested scope when a scope is given. The inner updateConfiguration(...) already returns that value, after normalization (for example, lowercased booleans). Activitygithub-actions commented on Nov 10, 2026 Warning threat detection engine error
The threat detection engine encountered an error and could not complete analysis. This is a tooling failure, not a security finding.
What happened
The threat detection engine failed to produce results.
Review the workflow run logs for details.
🎯 Triage report
On main, updateConfiguration with a scope id (zone, cluster, account and so on) returns the global value in its response. The scoped value is stored and takes effect, and listConfigurations shows it. The response has read the global row since #11770, so scripts that check it see the wrong value. PR #14641 is open to return the scoped value.
📊 Assessment
| Dimension |
Value |
Reasoning |
| Type |
type:bug |
The response does not match the stored value |
| Component |
component:api |
ConfigurationManagerImpl.updateConfiguration and UpdateCfgCmd |
| Severity |
Severity:Minor |
The setting is stored correctly; only the response is wrong |
| Labels |
type:bug, component:api, Severity:Minor |
|
| Coding agent |
Suitable |
Fix is specified and a PR is open |
💡 Notes and suggestions
- No similar open issues were found beyond the PR above.
- Reproduction: note the global value of
drs.algorithm, call updateConfiguration with clusterid, then compare the response with listConfigurations.
- The report says the implicit scope for domain admins and users has the same problem.
Generated by Daily Issue Triage · copilot · haiku55 · ~5 AIC · ⊞ 3.8K · ◷
Add this agentic workflow to your repo
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/daily-issue-triage.md@139fa09ef17cde4135e696ff8e7af09bc5ddfa6e
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|