Что означает код HRESULT 0x80636001 (PEER_E_CONTACT_NOT_FOUND)?

 
Предыдущий Следующий
PEER_E_PNRP_DUPLICATE_PEER_NAME PEER_E_INVITE_CANCELLED

PEER_E_CONTACT_NOT_FOUND

Где peer stack отклоняет операцию

PEER_E_CONTACT_NOT_FOUND — HRESULT 0x80636001 означает, что запрошенный доверенный контакт отсутствует в локальном хранилище контактов Peer Collaboration. PEER_E_CONTACT_NOT_FOUND — Рассматривайте это как результат сеанса presence, а не как общий сбой peer-сети.

Peer Collaboration обеспечивает бессерверное presence, контакты, подписки на endpoint и приглашения. Его операции зависят от интерактивного контекста пользователя, явно выбранных областей sign-in и разрешений firewall/privacy.

Данные, которые нужно сохранить до повтора

  • Зафиксируйте первый отказ среди PeerCollabEnumContacts, PeerCollabGetContact и функций приглашений.
  • Сохраните peer name контакта, перечисление контактов, профиль пользователя-владельца, события обновления/удаления и сведения о том, не хранит ли приложение устаревшую копию PEER_CONTACT.
  • Поместите успешное создание/discovery, события изменения состояния и неудачный вызов на одну timeline.
  • Сохраняйте peer name, identity, идентификаторы записей, данные приглашений и endpoint в исходном представлении Unicode или в двоичном виде.

Контролируемая изоляция

перечислите контакты непосредственно перед операцией и используйте один возвращённый объект контакта, затем сравните с устаревшим идентификатором. Меняйте только одну переменную; одновременные изменения identity, cloud, database и firewall state уничтожают причинную привязку.

Контрольная точкаВопрос для PEER_E_CONTACT_NOT_FOUND
До APIБыл ли требуемый процесс обработки приглашения получен в этом процессе и контексте пользователя?
На HRESULTСохраните peer name контакта, перечисление контактов, профиль пользователя-владельца, события обновления/удаления и сведения о том, не хранит ли приложение устаревшую копию PEER_CONTACT.
После исправленияобновите представление хранилища контактов или заново установите доверие через предусмотренный пользовательский сценарий; не приглашайте молча другого обнаруженного peer.

Соседний результат

PEER_E_IDENTITY_NOT_FOUND отличается тем, что contact-not-found относится к другому человеку в хранилище контактов Collaboration, а identity-not-found — к локальной peer-identity. Сохраняйте оба HRESULT в хронологическом порядке: исправление предпосылки может открыть следующий этап validation.

Безопасная реакция

обновите представление хранилища контактов или заново установите доверие через предусмотренный пользовательский сценарий; не приглашайте молча другого обнаруженного peer. Перед изменениями сохраняйте durable graph databases, group exports, identity certificates и invitation artifacts.

Инструментирование и регрессионное покрытие

Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют peer name контакта, перечисление контактов, профиль пользователя-владельца, события обновления/удаления и наличие в приложении устаревшей копии PEER_CONTACT.

Регрессионный уровеньПроверяемый случайУсловие прохождения
Входные данные и время жизни объектаПостройте минимальный сценарий, в котором запрошенный доверенный контакт отсутствует в локальном хранилище Peer Collaboration.В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из PeerCollabEnumContacts, PeerCollabGetContact и функций приглашений.
Контролируемое сравнениеперечислите контакты непосредственно перед операцией и используйте один возвращённый объект контакта, затем сравните с устаревшим идентификатором.Между неудачным и успешным запуском меняется только предусмотренный процесс обработки приглашения.
Путь восстановленияобновите представление хранилища контактов или заново установите доверие через предусмотренный пользовательский сценарий; не приглашайте молча другого обнаруженного peer.Нужная операция завершается успешно без изменения несвязанных разрешений пользователя и firewall.

Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить этот сеанс presence от последующего сбоя транспорта, авторизации или приложения.

Ссылки


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