Что означает код HRESULT 0x80670005 (STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED)?

 
Предыдущий Следующий
STATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION STATEREPOSITORY_E_BLOCKED

STATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED

Что означает код

HRESULT 0X80670005 отмечает конкретную границу Windows State Repository service/store: State Repository: ошибка / словарь / повреждён. Причину ищут на первом вызове, вернувшем код, а не на последующем UI-сообщении или автоматическом повторе.

В исходном EN-описании ключевое условие сформулировано так: Database integrity-check output on a copy.. Используйте эту формулировку как границу: если фактическое состояние ей не соответствует, ищите соседний HRESULT, а не расширяйте диагноз.

Вторая проверка из документации: StateRepository detected invalid dictionary data rather than ordinary lock contention.. Она полезна для контролируемого сравнения failing/working trace и относится именно к этому результату.

Что сохранить до изменений

  • package/application identity и repository DB generation.
  • transaction/statement ID, caller ID и retry count.
  • lock/busy/cache/schema/recovery event и elapsed timeout.

Метка результата для корреляции: ошибка / словарь / повреждён. Сохраняйте значения, которые различают этот переход от соседних кодов; секреты, приватные ключи и полный licensing payload в журналы не помещайте.

Как отделить эту причину

Различайте BUSY, LOCKED, shared-cache lock, recovery retry/timeout, schema mismatch и transaction-required. Бесконечный retry скрывает причину.

Code-specific ориентир: Treat it as corrected only when the repaired or rebuilt repository passes validation and repeated application-model operations without recreating corruption; retain the original negative case so fallback cannot be mistaken for repair.. В тесте оставьте object identity и операцию прежними и меняйте только один prerequisite, связанный с этой формулировкой.

  1. Сопоставьте evidence с условием «State Repository: ошибка / словарь / повреждён» и ближайшим отличающимся состоянием.
  2. Измените один подтверждённый input, policy, storage или device prerequisite.
  3. Повторите исходную операцию и сравните первый HRESULT и устойчивое состояние после завершения.
  4. Запишите 0X80670005, UTC-время, вызывающий API и identity объекта до повторов.

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

Исправьте доказанный locking/schema/recovery prerequisite; повторяйте с ограниченным backoff и тем же transaction scope.

Для финальной проверки сохраните ещё один исходный маркер: Validation error and dictionary identity. for this result, this pins the event to an object or resource generation within the Windows StateRepository boundary.. Успех означает, что исходное условие больше не воспроизводится на той же операции, а не только исчезло внешнее уведомление.

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


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