Распространённые проблемы
В этой статье собраны наиболее частые проблемы, возникающие при создании флоу в Flow & Paywall Builder, с указанием их причин и способов решения.
Флоу не удаётся предварительно просмотреть или опубликовать
При попытке предварительно просмотреть или опубликовать флоу могут появиться следующие ошибки:
| Сообщение | Причина и решение |
|---|---|
| No product selected | В карточке продукта не выбран продукт. Выберите продукт или удалите карточку. |
| This product no longer exists, This offer no longer exists | Продукт или оффер был удалён с дашборда. Выберите другой там, где он используется, или воспользуйтесь кнопкой Replace in N places у записи Missing на панели Products, чтобы исправить все вхождения на экране сразу. |
| This product is off this screen, This offer is off this screen | Текстовая переменная, условие или действие ссылается на продукт, которого нет в списке экрана, — например, после удаления его на панели Products. Добавьте продукт обратно через панель или отредактируйте ссылку. |
| Offer required | offer_price, offer_billing_period или offer_full_duration используется с продуктом, у которого нет оффера. Выберите оффер для продукта или используйте переменную prod_*. |
| Product reference is invalid | Ссылка на продукт некорректна. Выберите продукт заново. |
| Purchase action has no product to buy | У действия Purchase не указан продукт: поле пустое или ссылается на удалённую карточку. На вкладке Interactions элемента задайте для Product конкретный продукт или products.selectedProduct. |
| Select product action has no product to select | Карточка, на которую ссылалось действие Select product, исчезла: была удалена, перемещена из группы продуктов или находится на другом экране. На вкладке Interactions элемента укажите карточку на текущем экране. |
| Flow has no screens, Screen ”…” has no elements | Добавьте контент на пустой экран или удалите его. Флоу, содержащий только контент Remote Config, является исключением. |
| Invalid interaction action | Действие заполнено не полностью: Open URL без URL, Navigate to screen без назначения, Set variable без присвоения, Custom без Action ID, Show alert без заголовка и сообщения, Show или Hide без указания элемента, веб-платёжное Purchase без Web Paywall URL. Откройте взаимодействия элемента и завершите настройку или удалите действие. |
| Missing navigation target | Действие Navigate to screen ссылается на удалённый экран. Выберите существующий экран или удалите действие. |
| Missing product target, Invalid product target, Product target on another screen, Ambiguous product target, Select Product inside a component | Действие Select product ссылается на карточку, которая была удалена, не входит в группу продуктов, находится на другом экране, имеет ID элемента, совпадающий с элементом на другом экране, или расположена внутри футера или хедера, общего для нескольких экранов. Укажите карточку в группе продуктов на том же экране с уникальным ID. |
| Missing selectable group | Элемент ссылается на selectable group, которой больше не существует. Переподключите её или создайте заново. |
| Invalid visibility condition | Правило условной видимости заполнено не полностью. Завершите настройку в конструкторе условий. |
| Missing Default Locale Content | У действия Open URL задан URL для другой локали, но не задан для локали по умолчанию. Добавьте URL по умолчанию на панели Localizations. |
| Missing product reference | Старый флоу использует продукт, который не зарегистрирован на экране. Откройте экран и добавьте продукт через панель Products. |
Регулярно просматривайте флоу в приложении Adapty во время разработки. Если флоу не публикуется, он не загрузится и там — а сообщение об ошибке укажет на конкретную проблему.
Чтобы проверить, готов ли флоу к продакшну, запустите скилл flow-audit. Он проверяет то, что не покрывают ошибки публикации: нерабочие кнопки, соответствие требованиям стора, незаконченные тексты и покрытие переводов. В отчёте для каждой проблемы указан элемент и экран.
Публикация завершается ошибкой «Something went wrong» без подробностей

Запрос на публикацию завершился ошибкой на стороне Adapty, а не из-за вашего флоу. Опубликованная версия осталась без изменений. Подождите несколько минут и попробуйте опубликовать снова. Если ошибка повторится, скопируйте Request ID из уведомления и отправьте его на support@adapty.io — команда поддержки сможет найти упавший запрос.
Скидка не применяется при покупке
Builder проверяет только то, что предложение всё ещё существует в Adapty. Применяется ли скидка — решает стор в момент покупки: introductory offer зависит от того, есть ли у пользователя право на него, а для App Store promotional offer нужен действующий ключ In-App Purchase Key. Оба случая описаны в разделе Расхождения продуктов и цен.
Цена предложения не отображается в превью
Превью в билдере не имеет доступа к сторам, поэтому offer_price, offer_billing_period и offer_full_duration отображают имя переменной в фигурных скобках вместо значения. При рендеринге флоу в приложении SDK подставит нужные значения. Чтобы проверить условия, зависящие от типа предложения, см. Предпросмотр продуктов и предложений.
Публикация завершается с ошибкой после ввода сокращённого hex-цвета
Вводите каждый цвет ровно шестью hex-символами, например #FFFFFF. Поле цвета принимает более короткое значение, но не разворачивает его, поэтому сокращение вроде #FFF попадает в конфигурацию SDK в некорректном виде и публикация отклоняется. Прозрачность тут ни при чём — то же значение ломается и при 100% прозрачности. Исключение, которое обходится дороже всего, — четырёхзначное значение: оно публикуется, но отображает совсем не тот цвет, который вы выбирали.
Изменения типографики не применяются к состоянию элемента
Если у состояния, например Selected, есть собственные настройки типографики, изменения типографики в состоянии Default — включая применение другого текстового стиля — не влияют на это состояние. Редактируйте типографику состояния напрямую.
Элементы теряют стиль после удаления текстового стиля
Удаление текстового стиля не копирует его настройки в элементы, которые его используют: эти элементы возвращаются к типографике по умолчанию. Перед удалением стиля переназначьте затронутые элементы на другой стиль или задайте им типографику вручную.
Для элемента отсутствуют элементы управления позицией, размером и отступами
Элемент и его контейнер используют направление Free. Это оставляет только один возможный вариант позиции и размера: Absolute с фиксированными шириной и высотой. Adapty скрывает все остальные элементы управления — переключатель Position, раздел Spacing, а также опции Fill и Hug. Чтобы вернуть их, измените Direction элемента на Vertical или Horizontal.
Условия и переменные перестают работать после изменения ID элемента
Условия и текстовые переменные ссылаются на элементы по Element ID, и при изменении ID ссылки не обновляются автоматически — они просто перестают работать. Задавайте Element ID до того, как будете на него ссылаться. Если вам всё же пришлось его изменить, обновите все условия и переменные, которые на него ссылаются. Исключение составляют сегменты прогресс-бара: при переименовании сегмента его ссылки обновляются автоматически.
Условие или переменная возвращает пустое значение
В списке переменных отображаются поля со всех экранов, поэтому условие или текстовая переменная могут ссылаться на поле, которое пользователь ещё не заполнил. В таком случае при выполнении флоу это значение окажется пустым. Ссылайтесь только на поля, собранные на предыдущих экранах.
Пользователи видят начальное значение кастомного тега вместо значения из вашего приложения
Пользователи видят начальное значение кастомного тега в следующих случаях:
- Приложение не передаёт значение: код, открывающий флоу, не передаёт значение для тега, или пользователь не обновил приложение до версии, которая это делает.
- Имя не совпадает: имя тега в коде приложения отличается от имени тега в билдере. Имена чувствительны к регистру и включают группу. Например, если группа
userсодержит тегstreak, полное имя тега —user.streak. - Другой тег в том же текстовом элементе не имеет значения: если хотя бы один пользовательский тег в текстовом элементе не имеет значения, все теги в этом элементе показывают начальное значение. Передавайте значения для всех пользовательских тегов в текстовом элементе.
SDK мобильного приложения не передаёт значения для пользовательских тегов, поэтому в предпросмотре отображаются только начальные значения. Чтобы увидеть значения, которые передаёт ваше приложение, откройте флоу в сборке вашего приложения.
Пользователи видят пустое место вместо пользовательского тега
Пользователи видят пустое место вместо пользовательского тега в следующих случаях:
- Ваше приложение передаёт пустую строку: Adapty воспринимает пустую строку как значение, поэтому начальное значение не используется в качестве запасного. Чтобы отобразить начальное значение, не передавайте никакого значения для тега.
- У тега нет начального значения: Чтобы отображать запасное значение, когда приложение не передаёт никакого значения, укажите начальное значение для тега.
Действие «Set variable» не меняет выбранный продукт
Выбранный продукт — это не переменная, поэтому Set variable не может изменить выбор. Используйте вместо этого действие Select product.
Изображение или видео не загружается
Файл, выходящий за пределы ограничений медиафайлов Flow & Paywall Builder, не загрузится. Проверьте файл на соответствие требованиям для изображений и видео:
| Элемент | Форматы | Максимальный размер файла | Другие ограничения |
|---|---|---|---|
| Изображение | .JPG, .PNG, .WEBP | 20 МБ | — |
| Видео | .MP4, .WEBM | 50 МБ | Не более 30 секунд; минимум 640×640 пикселей |
Следующие форматы не поддерживаются:
- Анимированные GIF и анимированные WEBP: для добавления анимации используйте элемент Video.
- SVG: экспортируйте файл в формате PNG или WEBP. Для иконок ничего загружать не нужно — элемент Icon берёт иконки из встроенной библиотеки Tabler Icons.
Нижний колонтитул не отображается
Нижний колонтитул отображается только на экране с включённой опцией Vertical scroll. Включите Vertical scroll в Screen settings > Scroll.