| Предыдущий | Следующий |
| PEER_E_GROUPS_EXIST | PEER_E_DATABASE_ACCESSDENIED |
PEER_E_RECORD_NOT_FOUND
Что именно отказало
Практический смысл PEER_E_RECORD_NOT_FOUND (0X80630301): запрошенный record ID отсутствует в графе или группе. В трассировке отделяйте маркер «record not found» от последующих wrapper/UI ошибок: они могут появиться уже после первичной границы и не объясняют исходное состояние.
Данные до повторной попытки
До повторной попытки запишите Peer API, graph/group/identity handle и текущее lifecycle-состояние. Для условия «запрошенный record ID отсутствует в графе или группе» эти данные важнее общего текста сообщения, потому что позволяют связать результат с конкретным владельцем операции.
- record ID/type, payload length, attributes и expiration.
- graph/group handle, creator/modifier identity и database generation.
- результат PeerGroupAddRecord/UpdateRecord либо enumeration вокруг сбоя.
| Наблюдение | Что оно означает |
|---|---|
| Первый вызов возвращает PEER_E_RECORD_NOT_FOUND | Граница «запрошенный record ID отсутствует в графе или группе» относится к текущему объекту и generation; сохраните это состояние до cleanup. |
| После одного целевого изменения код исчезает | Связь с условием «запрошенный record ID отсутствует в графе или группе» подтверждается только если остальные входы и owning context не изменились. |
| Первым становится другой HRESULT | Считайте его новой первичной границей; маркер «record not found» больше не должен подменять причину следующего отказа. |
Изолированный тест
Контрольный запуск должен воспроизводить «запрошенный record ID отсутствует в графе или группе» на тех же исходных данных. Затем восстановите или зарегистрируйте только отсутствующий объект/ключ и повторите исходный lookup или activation. Если операция проходит прежнюю стадию, гипотеза локализована; если нет — вернитесь к первому HRESULT и сохранённым полям.
- Зафиксируйте первый
PEER_E_RECORD_NOT_FOUNDи объект, которому принадлежит маркер «record not found». - Сохраните входные данные и lifecycle-state до изменения условия «запрошенный record ID отсутствует в графе или группе».
- Измените только состояние, связанное с «запрошенный record ID отсутствует в графе или группе», и выполните тот же вызов ещё раз.
Что не стоит смешивать
Не удаляйте всю peer-базу, identities или firewall rules до фиксации конкретного graph/group/record state. Исправление считается реальным, когда прежняя граница «запрошенный record ID отсутствует в графе или группе» пройдена на сопоставимом входе, а не просто скрыта более общим сообщением.
Документация
- Microsoft: Record attribute schema.
- Microsoft: Record search query format.
- Microsoft: Record dependencies.
- Microsoft: Grouping API functions.
Нужно найти другой код? Найти другой код состояния или ошибки.
