Ошибка "Не найдено" при обновлении подписки Microsoft Graph для почтового ящика календаря

Я понимаю, что этот вопрос может быть дубликатом ошибки Microsoft Graph Subscription ExtensionError - Delete / Update, но поскольку на исходный вопрос еще нет ответа, я решил написать здесь еще один пост и подробно рассказать о нем.

В настоящее время наше приложение синхронизирует почтовые ящики календаря с несколькими идентификаторами клиентов Microsoft. В последние несколько дней (с 21 марта) некоторые из наших операций по обновлению подписки начали давать сбой с Not Found ошибкой.

Несколько примеров таких случаев (есть и другие случаи, но я написал здесь 2 примера):

Microsoft tenant ID: 875bdd0a-688b-41d2-96b7-454d280043aa
Subscription ID: 7f8ed6ec-b536-4dad-b66a-5f6803f86121
Last known successful update: 2019-03-22 (10:17:06.008) UTC
When the update operation failed for the first time: 2019-03-23 (22:17:07.000) UTC

Other subscription ID which is okay for this tenant:
- c3b33905-61bf-42d0-94ed-fcfbe11ca71e
Microsoft tenant ID: 7eec492c-a8a4-4177-9059-77ec8ee8c987
Subscription ID: 4abc3eda-470a-459f-9bca-336c07706047
Last known successful update: 2019-03-22 (22:17:04.430) UTC
When the update operation failed for the first time: 2019-03-23 (22:17:12.000) UTC

Other subscription ID which is okay for this tenant:
- 27892e7d-0798-4324-8c0e-4ef87b27c047

Поскольку мы пытаемся продлевать подписку с почти истекшим сроком действия каждые 12 часов, каждый последовательный вызов проблемных подписок также будет возвращать Not Found ошибку.

Срок действия этих подписок к настоящему моменту истек, наш единственный вариант - создать новую подписку.

У меня вопрос, знаем ли мы, почему произошла эта ошибка? Это временная проблема или есть вероятность, что она повторится в будущем?

Спасибо.


person freedomofkeima    schedule 25.03.2019    source источник
comment
Можете ли вы подтвердить, использует ли ваше приложение аутентификацию, делегированную пользователем, или аутентификацию только для приложений? Это актуально, потому что есть некоторые варианты поведения Outlook, основанные на этом, и они еще не полностью реализованы в Graph (скоро будет)   -  person Peter Ciszewski    schedule 25.03.2019
comment
Привет, спасибо за ответ. В настоящее время мы используем аутентификацию, делегированную пользователем. Поскольку он работает для некоторых подписок, а теперь, кажется, работает правильно после того, как я создал новую подписку для этих почтовых ящиков календаря, я предполагаю, что на стороне сервера периодически возникает проблема.   -  person freedomofkeima    schedule 27.03.2019


Ответы (1)


Подписки, созданные для ресурсов Outlook (Exchange), таких как сообщения, события, контакты, могут быть удалены службой Outlook из-за пользовательских событий, таких как сброс пароля. Это вызывает странную ситуацию, когда вы все еще видите свою подписку на Graph, но основная подписка на Outlook была удалена. Это проявляется двояко:

  1. Вы не можете продлить или удалить подписку Graph, вы видите 404 (генерируется Outlook)
  2. Уведомления фактически перестают поступать в ваше приложение для этой подписки.

Мы очень близки к обновлению Microsoft Graph, чтобы отправлять вам специальные сигналы, информирующие вас, когда это происходит, чтобы ваше приложение могло принимать меры и поддерживать непрерывный поток уведомлений.

person Peter Ciszewski    schedule 27.03.2019
comment
Привет, спасибо за ответ. Кстати, какие пользовательские события могут вызвать эту ошибку? После двухмесячного использования нашей пробной среды с несколькими арендаторами O365 мы все еще довольно часто сталкивались с этой ExtensionError, Operation: Update; Exception: [Status Code: NotFound; Reason: The subscription with Id '...' is not found.] ошибкой. Есть ли какие-нибудь обновления для функции специальных сигналов? Спасибо. - person freedomofkeima; 30.05.2019
comment
да, обратитесь к этой новой функции предварительной версии docs.microsoft.com/en -us / graph / webhooks-outlook-authz - person baywet; 16.03.2020