Как устранять распространенные ошибки Менеджера учетных данных

В этом руководстве перечислены распространенные коды ошибок и описания, связанные с Менеджером учетных данных, а также приведена информация об их причинах.

Код ошибки и описание Причина

android.os.TransactionTooLargeException

Это связано с известной проблемой, из-за которой API credentialManager.getCredential() в Android 14 и более поздних версиях не может показать диалоговое окно входа, если на устройстве есть несколько аккаунтов Google. Проблема возникает с GetGoogleIdOption, а не с GetSignInWithGoogleOption. Эта проблема устранена в сервисах Google Play версии 24.40.XX и более поздних.

CreateCredentialCancellationException

Пользователь отменил регистрацию или получение ключа доступа.

Пользователь решил не создавать и не использовать учетные данные. Теперь вы можете настроить интерфейс, чтобы предложить альтернативный способ входа, или перейти к следующим шагам.

GetCredentialCancellationException

Процесс получения учетных данных был прерван, поскольку не было получено необходимое разрешение пользователя. Чаще всего это происходит, когда пользователь вручную отменяет процесс входа, но также может означать, что запрос не был авторизован из-за технических ограничений. Поскольку эта ошибка указывает на отсутствие согласия, не повторяйте запрос автоматически, так как это может помешать пользователю. Однако разработчикам следует отслеживать частоту возникновения этого исключения. Большое количество отмен может указывать на неправильную настройку, например на отсутствие или неправильное указание области действия, что мешает успешному завершению авторизации. Если вы заметили неожиданные тенденции, проверьте параметры запроса и конфигурацию [проверяющей стороны][2].

Примечание. Сообщение об ошибке может отличаться в зависимости от типа учетных данных:

  • Для ключей доступа сообщение об ошибке может быть таким: "Регистрация или получение ключа доступа отменены пользователем".
  • При входе с аккаунтом Google может появиться сообщение об ошибке "Действие отменено пользователем".

CreateCredentialCustomException или GetCredentialCustomException

При использовании стороннего SDK для вызовов API с объектом запроса, который является подклассом CreateCustomCredentialRequest или GetCustomCredentialOption, могут возникать ошибки. В этом случае проверьте, есть ли в SDK константы для специальных типов исключений, которые соответствуют e.type. Если совпадений не найдено, можно либо удалить исключение, либо зарегистрировать его.

CreateCredentialInterruptedException или GetCredentialInterruptedException

Операция могла быть прервана, потому что пользователь перешел в настройки, чтобы изменить конфигурацию менеджеров паролей. Возможно, были и другие причины. Попробуйте позвонить ещё раз.

CreateCredentialUnknownException

При сохранении пароля получен ответ о сбое от One Tap 16: [28431] Сохранение пароля пропущено, так как пользователю, скорее всего, предлагается автозаполнение Android.

Эта ошибка возникает только в Android 13 и более ранних версиях, если в качестве поставщика автозаполнения выбран Google. В таких случаях пользователи будут получать запрос на сохранение от функции автозаполнения, а пароль будет храниться в Google Менеджере паролей. Важно, что учетные данные, сохраненные с помощью Автозаполнения от Google, синхронизируются с Credential Manager API в обоих направлениях. Поэтому эту ошибку можно игнорировать.

CreatePublicKeyCredentialDomException и GetPublicKeyCredentialDomException

Скорее всего, исключение DOM содержит более конкретное значение domError. Вы можете сопоставить его с DomException WebAuthn, чтобы получить дополнительные сведения.

CreatePublicKeyCredentialDomException и GetPublicKeyCredentialDomException

Не удается проверить входящий запрос.

Сервер менеджера паролей не распознает идентификатор пакета приложения. Это указывает на возможную проблему с интеграцией на стороне сервера, в частности с настройкой связи цифровых объектов. Проверьте правильность идентификатора пакета и SHA в файле связи объектов.

CreatePublicKeyCredentialDomException:

Не удалось создать ключ во время регистрации.

Эта проблема может возникнуть, если пользователь закрывает диалоговое окно блокировки экрана во время регистрации.

CreateCredentialNoCreateOptionException

Это исключение указывает на то, что у пользователя не настроен действительный менеджер паролей. Эта ошибка не связана с отменой, инициированной пользователем.

CreatePublicKeyDomException и GetPublicKeyCredentialDomException

Пользователь отменил регистрацию ключа доступа.

Пользователь отменил извлечение ключа доступа.

Эта проблема может возникнуть, если пользователь закрывает диалоговое окно отпечатка пальца во время регистрации или получения ключа доступа.

GetCredentialProviderConfigurationException и CreateCredentialProviderConfigurationException

getCredentialAsync: не найдены зависимости поставщика.

createCredentialAsync: зависимости поставщика не найдены.

Отсутствует зависимость androidx.credentials:credentials-play-services-auth:<latest-version>.

GetCredentialUnsupportedException или CreateCredentialUnsupportedException

Ваше устройство не поддерживает Менеджер учетных данных.

Убедитесь, что библиотека учетных данных обновлена до версии 1.2.1 или выше.

GetPublicKeyCredentialException

Не удалось расшифровать учетные данные.

Эта проблема возникает при попытке использовать ключ доступа после выхода из аккаунта Google и повторного входа в него. Попросите пользователя снова войти в аккаунт Google на устройстве.

NoCreateOptionException

Это исключение ожидается, если у пользователя на устройстве не настроены учетные данные ключа доступа или менеджер паролей.

NoCredentialException

Подходящие учетные данные не найдены.

Это исключение возникает в следующих ситуациях:

  • Для параметра setFilterByAuthorizedAccounts задано значение true, но на устройстве нет авторизованных аккаунтов.
  • На устройстве нет аккаунтов, в которые выполнен вход (аккаунты не добавлены или требуется повторная аутентификация).
  • Нижний лист не появляется, если на устройстве отключены предложения войти в аккаунт. Чтобы нижняя панель показывалась для любого аккаунта, необходимо включить глобальный параметр Настройки аккаунта Google > Войти с аккаунтом Google. Это не влияет на работу кнопки.

Не удалось создать ключ доступа, так как зашифрованные данные заблокированы.

Пользователю нужно сбросить серверные данные Chrome. С серверов удалятся закладки, настройки Chrome, сохраненные пароли и ключи доступа. Чтобы узнать больше о том, какая информация сохраняется в Chrome, откройте страницу Данные Chrome в вашем аккаунте.

  1. Перейдите на страницу chrome.google.com/sync.
  2. Внизу выберите Удаление данных.
  3. Включите синхронизацию в Chrome на устройстве.

On Begin Sign In Failure: 8 – неизвестная внутренняя ошибка.

Устройство может быть неправильно настроено для работы с аккаунтом Google. Возможно, проблема связана с тем, как создается JSON ключа доступа. Проверьте правильность реализации.

Не удалось получить аккаунт для синхронизации.

В сервисах Google Play версии 24.40.XX и более поздних будут предоставляться более информативные коды ошибок. Например, вместо сообщения "Не удалось получить аккаунт для синхронизации" вызывающие абоненты теперь будут получать сообщение об ошибке отмены.