Что означает код HRESULT 0x80220023 (WCM_E_CYCLICREFERENCE)?

 
Предыдущий Следующий
WCM_E_MANIFESTCOMPILATIONFAILED WCM_E_MIXTYPEASSERTION

WCM_E_CYCLICREFERENCE

Практический смысл

WCM_E_CYCLICREFERENCE (0X80220023) относится к Windows Configuration Management. Это failure HRESULT. Исходный признак результата зафиксирован в документации как исходное описание результата WCM_E_CYCLICREFERENCE.

Не начинайте с переустановки компонента: сначала сохраните первый HRESULT, object generation и параметры конкретной операции, на которой возникло состояние. Для этой страницы ключевая граница формулируется так: исходное описание результата WCM_E_CYCLICREFERENCE

Специфичные признаки исходного описания

  • Retry only after changing the reference graph. Evaluation order cannot make a true cycle safe.
  • WCM_E_CYCLICREFERENCE is the failure HRESULT 0x80220023 (signed decimal -2145255389 , unsigned decimal 2149711907 ). Its severity bit is 1 , facility is 34 ( FACILITY_STATE_MANAGEMENT ), and the facility-specific code field is 0x0023 .
  • AllStat records the Windows SDK description as “Cyclic reference detected.”
  • The metadata reference graph contains a cycle. The operation reached resolution of expressions, substitutions, settings dependencies, or metadata references during compilation/validation. The first branch to test is whether expression A references B while B references A; keep that separate from the possibility that substitutions expand recursively.
  • At this boundary, capture the reference chain reported near the failure, then correlate it with all definitions and source files participating in the cycle. Assign ownership only after checking merge/include order.
  • expression A references B while B references A

Что сохранить до исправления

  • namespace, configuration unit и полный logical path без секретных values
  • manifest/schema version, datatype, restriction и operation type
  • processor/handler identity и точную assertion или validation boundary
  • user/store context, transaction state и первый HRESULT от WCM API

Как локализовать границу

Проверяйте schema/manifest contract, namespace/path и конкретное правило validation, а не весь configuration store целиком. Сначала воспроизведите минимальный сценарий без параллельного изменения конфигурации; затем сравните сохранённые параметры с условием из исходного описания. Если состояние исчезает после re-enumeration или пересоздания объекта, отдельно проверьте lifetime/generation race.

Исправление и повторная проверка

Сравните trace до и после изменения: исправленным считается тот случай, где исчезает подтверждённая причина и сохраняется корректное последующее состояние.

Дополнительные признаки конкретного сценария

  • a type or metadata include graph returns to an already active node
  • avoid fixing only the final edge without checking indirect references
  • break the cycle by introducing a concrete base value or one-way dependency

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.