The Configuration Framework Service (CFS) has issues in which updating the state of a CFS component can leave the component with invalid state data. This in turn can cause problems, such as a complete failure of CFS Batcher.
The issue is caused by a few problems:
For some aspects of this issue, it is important to be aware that
Component configuration state layers
changed between CFS v2 and v3. For this issue, the important change is that the layer status changes from
being embedded in the commit field (CFS v2) to having its own dedicated status field (CFS v3).
However, when a configuration state layer is converted from v2 format to v3 format, CFS ignores this;
it leaves the commit field unchanged, and the v3 layer is missing the status field. This conversion
takes place any time component state is patched using the CFS v2 endpoint (provided that the patch
includes a non-empty state list).
The end result of all of this is that it is possible to patch components so that their
state fields contain configuration state layers that are missing fields and/or have
fields with invalid values.
The problems that will result from this vary based on the nature of the invalid data.
If this issue causes a component to have configuration state layers that are missing the status field,
then this will break CFS batcher. The symptom in the cfs-batcher Kubernetes pod logs resembles the following:
2026-02-24 17:35:54,843 - ERROR - __main__ - Unexpected error occurred: 'status'
None – this issue exists in all versions of CSM.
This issue is only seen by user patch operations – no CSM services perform any CFS patch
operations that encounter this. Administrators can completely avoid this problem if they
never perform CFS component patches that have non-empty state lists. In the normal course
of operations, it is not required to perform such patches. If such a patch is required, then
administrators should use the CFS v3 endpoint to do the patching, and should take care that
the state value in the patch is complete and valid.
Perform a CFS v3 component patch to set the state field to a valid list.
A simple option is to set the state to an empty list.