Мобильный SDK: ошибки, причины и решения
Обновлено: 13 октября 2026 · 7 мин чтения
Сначала посмотрите в два места. «Settings › Workspace settings › Inboxes» › Ваш канал › колонка настроек › «Overview»: статус каждой платформы и «Warnings», у каждого «Fix». Затем лог SDK: при разработке включите отладочный уровень (Clomni.setLogLevel), уровень по умолчанию warning: предупреждения и ошибки пишутся всегда, ошибки интеграции (ключи, хеш, push) как error. Уровень debug дополнительно пишет шаги SDK. На Android это logcat с тегом Clomni, на iOS консоль Xcode и Console.app, subsystem ai.clomni.messenger, во Flutter ошибки Dart начинаются с [Clomni].
Шаги
-
1
Ошибки ключа и подключения
- Строка лога, начинающаяся с
api_key, о том, что ключ неверный или не для этой платформы (сервер 401invalid_api_key; SDK пишет эту строку на азербайджанском). Причина: ключ скопирован неверно, отозван, прошло больше 7 дней после создания нового, или это ключ другой платформы. Решение: на Android ключandroid_…, на iOSios_…; сравните начало ключа в разделе «Installation», при необходимости «New key». - Та же ошибка на iOS с верным ключом. Причина: «iOS Bundle ID» канала отличается от Bundle ID приложения, который iOS SDK отправляет при каждом подключении. Bundle ID вводится в мастере при создании канала, и в панели нет места, где его потом изменить. Решение: напишите Clomni AI правильный Bundle ID приложения, команда Clomni его исправит.
call Clomni.initialize first. Причина: метод вызван доinitialize. Решение: вызывайтеinitializeпри запуске, на Android вApplication.onCreate, с классом, указанным в манифесте черезandroid:name.initialize was called before; the first call stays. Решение: вызывайте один раз; чтобы сменить ключ, перезапустите приложение.this App SDK inbox is switched off in Clomni. Причина: канал в аккаунте выключен или аккаунт не активен. Messenger не открывается. Решение: напишите Clomni AI, он проверит и при необходимости передаст команде Clomni.- Нет подключения в корпоративной сети. Причина: прокси или список разрешённых хостов. Решение: разрешите
app.clomni.aiдля HTTPS и WebSocket.
- Строка лога, начинающаяся с
-
2
Идентификация пользователей
- Строка лога, начинающаяся с
user_hash, о том, что хеш неверный (сервер 403identity_verification_failed). Причина: хеш не совпадает. Решение: хеш строится из той же строкиuser_id, что и вloginUser, текущим секретом, в hex нижнего регистра. БезuserIdиз e-mail без пробелов по краям, в нижнем регистре. «Security» › «Test a hash» называет причину: «It does not match», «The hash is in upper case», «The hash must be 64 hex characters». - После смены секрета входы отклоняются. Причина: после «Make a new secret» старый секрет работает только 7 дней. Если «Test a hash» отвечает «Correct, but made with the old secret», сервер ещё на старом секрете. Решение: переведите сервер на новый секрет.
- В режиме «Enforced» вход без хеша отклоняется. Решение: отправляйте хеш или вернитесь к «Recommended», пока его не отправляют все версии приложения.
- Следующий пользователь телефона видит диалоги предыдущего. Причина: не вызывается
logout. Решение: вызывайтеClomni.logout()вместе с выходом из приложения. - Оператор не видит имя пользователя. Решение: передавайте
nameиemailвloginUser, для последующих измененийupdateUser.
- Строка лога, начинающаяся с
-
3
Push не приходит
Начните с «Test push» в разделе Push канала: ответ является ответом самого FCM или APNs, он разобран в статье «Ключи push для мобильного SDK».
- iOS:
BadEnvironmentKeyInToken. Причина: ключ APNs только для Sandbox или только для Production. Работает из Xcode, но не из TestFlight (или наоборот). Решение: создайте в Apple Developer новый ключ с «Environment: Sandbox & Production» и загрузите его. - Устройства нет в списке «Test push». Причина: токен не дошёл до Clomni. Решение: разрешите уведомления на телефоне, проверьте вызов
setDeviceToken, один раз откройте Messenger. - Android 13+: уведомления нет, в логе
notification not shown (POST_NOTIFICATIONS?). Решение: объявитеPOST_NOTIFICATIONSв манифесте и запросите его. SDK сам его не запрашивает. - Android: в панель загружен
google-services.json. Панель пишет «The file has no project_id». Решение: загрузите файл из Firebase › Project settings › Service accounts › «Generate new private key». - Android:
SENDER_ID_MISMATCH. Причина: service account из другого проекта Firebase. Решение: service account того же проекта, что иgoogle-services.jsonприложения. - Android: уведомления приходят только при открытом приложении. Причина: data-сообщение обрабатывается только на экране. Решение:
ClomniPush.handleвFirebaseMessagingService; в React NativesetBackgroundMessageHandlerвindex.js; во FlutteronBackgroundMessageдоrunApp; в Unity свойListenerService. - iOS: нет capability. Причина: не добавлена capability Push Notifications, токен не выдаётся. Решение: Xcode › Signing & Capabilities › + Capability › Push Notifications.
- iOS с React Native или Flutter: нажатие на уведомление Clomni открывает только приложение, не диалог. Причина: push Clomni на iOS приходят напрямую из APNs, библиотека Firebase их не видит. Решение: нативный
UNUserNotificationCenterDelegate(ClomniNotifications) и токен APNs черезgetAPNSToken, как в статье платформы. - iOS:
InvalidProviderToken(неверный Key ID или Team ID),DeviceTokenNotForTopic(Bundle ID в Push не совпадает с приложением). - iOS: приложение падает при нажатии с «Call must be made on main thread». Решение: сделайте методы делегата
@MainActor. - Android: иконка в виде серого квадрата. Решение: белая силуэтная иконка через
setNotificationIcon. - Android: в логе
push token not registered: …. Причина: токен не дошёл до сервера. Решение: проверьте сеть, вызовsetDeviceTokenи service account JSON в панели.
- iOS:
-
4
Установка (Android, iOS, React Native, Flutter, Unity)
- Сборка Android останавливается на слиянии манифестов:
provider#androidx.core.content.FileProvider@authorities … collides with another value(например, с unity-webview в Unity). Причина: SDK 1.0.4 и более ранние объявляли класс FileProvider из androidx, который объявляет и приложение или другая библиотека. Решение: обновите SDK до 1.0.5 (Unity:#unity-1.0.5, затем resolve в EDM4U). Если Вы добавилиtools:replaceиз-за этой ошибки, удалите его. pod installне находитClomniMessenger(«Unable to find a specification»). Причина: SDK нет в CocoaPods trunk. Решение:pod 'ClomniMessenger', :git => 'https://github.com/clomni/clomni-mobile-sdk.git', :tag => '1.0.4'. В Unity меняйте эту строку в Podfile папки сборки после каждой сборки iOS.- React Native:
pod installпишет «@clomni/react-native needs React Native 0.75 or later». Решение: обновите React Native до 0.75+ или добавьте строкуpod 'ClomniMessenger'выше в Podfile. - React Native: ошибки линковки на символах
ClomniMessenger. Решение: та же строка в Podfile иpod install. - React Native, Expo: «The package doesn't seem to be linked». Причина: Expo Go не загружает нативные модули. Решение: development build (
npx expo prebuild,npx expo run:ios, сборка EAS). - Flutter:
pod installостанавливается с «clomni_flutter: the iOS SDK is not on CocoaPods trunk». Причина: Swift Package Manager выключен, а в Podfile нет строки. Решение:flutter config --enable-swift-package-managerили строка внутриtarget 'Runner'. - Flutter, Android: приложение падает при открытии Messenger, плавающая кнопка не видна. Решение:
MainActivityдолжна наследоватьFlutterFragmentActivity. - Unity: в редакторе ничего не происходит, это нормально. Xcode не находит модуль: откройте
.xcworkspace.
- Сборка Android останавливается на слиянии манифестов:
-
5
Messenger, flow и язык
- Messenger не открывается, лог пуст. Решение: включите отладочный лог; в Unity проверяйте на устройстве.
- iOS:
no window to present the messenger from yet. Решение: вызывайтеpresentпосле показа экрана. - Messenger открывается, но остаётся пустым или показывает «Повторить». Причина: не удалась первая загрузка: нет интернета,
app.clomni.aiзаблокирован или ключ отклонён. Решение: найдите ошибку в логе. - Изменение в панели не видно в приложении. Причина: Appearance ещё в черновике. Решение: «Appearance» › «Publish».
startFlowничего не делает. Причина: к событию не привязан опубликованный flow. Решение: в конструкторе flow триггер «App event», то же имя, flow опубликован. В разделе «Flows» должно быть видно «Event: …».- В
startFlowпередано название flow. Имя события и название flow не одно и то же: передайте имя из строки «Event: …» под flow в разделе Flows. Flow с триггером «When a conversation starts» черезstartFlowне запускается. - Flow нового диалога не работает. Причина: flow, выбранный в мастере, остался черновиком, «Overview» пишет «The new conversation flow is not published.» Решение: опубликуйте его в разделе «Flows».
{{data.…}}в тексте flow остаётся пустым. Решение: одинаковое имя ключа в данныхstartFlowи во flow.- Messenger говорит не на том языке. Причина:
setLanguageвыбрал язык, выключенный в панели, или язык не выбран, а языка телефона среди включённых нет. Решение: включите язык в «Appearance» › «Languages» и опубликуйте, или вызовитеsetLanguage("az"). - Плавающая кнопка не видна. Причина: она выключена и в панели, и в коде. Решение:
setLauncherVisible(true)или «Appearance» › «Theme» › «Floating button». - React Native: плавающая кнопка не появляется при холодном запуске. Причина: ошибка SDK 1.0.1, исправлено в 1.0.2. До этого открывайте Messenger своей кнопкой.
- React Native, Android: открытый Messenger пропадает, когда приложение снова открывают по иконке. Причина:
MainActivityсsingleTask. Исправлено в SDK 1.0.2. - В логе
setTheme: primaryColor "…" is not #RRGGBB. Причина: формат цвета. Решение:#и шесть hex-цифр, например#0A66C2. - iOS:
font family "…" is not in the app; the system font stays. Причина: шрифта нет в бандле. Решение: добавьте файл шрифта в таргет и вUIAppFontsвInfo.plist. - Оператор не видит диалоги из приложения. Решение: добавьте его в раздел канала «Collaborators».
- «Overview»: «… devices run an old SDK version». Решение: выпустите приложение с новым SDK.
-
6
Если всё ещё не работает
Напишите Clomni AI: платформа и версия SDK (
Clomni.versionв Kotlin и Swift), App ID, что показывает «Overview», отладочный лог в момент проблемы, для push ответ «Test push». Никогда не отправляйте Identity Secret, полный ключ API, файл.p8или файл service account. -
7
Полное руководство
- PDF: руководство Clomni Mobile SDK, на русском языке.
- Онлайн: Troubleshooting (на английском).
- В панели: раздел «Guide» в колонке настроек канала.