Common issues
This article collects the issues that come up most often while building a flow in the Flow Builder, each with its cause and its fix.
A flow won’t preview or publish

You can’t publish or preview your flow if any of the following issues are present.
- An interaction with an incomplete configuration. Common cases:
- An Open URL action without a target URL.
- A Navigate to screen action without a destination — also occurs when the destination screen is deleted after the action is set up.
- A conditional action without an operator or value.
- A Set variable action without a variable/value assignment.
- A Purchase action with no product (in-app store) or no Web Paywall URL (web payment).
- A Custom action without an Action ID.
- A Show alert action with an empty Title or Message.
- A Show or Hide action with no element selected.
- A Select product action with no target product — also occurs when the target product element is deleted, moved out of its product group, or left on another screen.
- A Select product action saved inside a reusable component, or one that targets an element ID used on more than one screen.
- A screen with no elements.
- A product element without a product attached — may occur if you remove the referenced product.
- An invalid remote config JSON breaks the entire delivery process — you cannot even save the draft.
To catch these before publishing, preview the flow in the Adapty app. If the flow fails to load there, the error message gives you more detail.
This list is about what stops a flow from saving. A flow can pass every one of these checks and still be unsafe for a real user — no restore action, a dead purchase button, missing translations. The flow-audit skill checks for that instead, and ends in a pass/fail verdict rather than an error message.
Publishing fails with “Something went wrong”
This error means the publish request failed on the Adapty side, not that your flow is misconfigured — that’s why the message is generic. Your live version is unchanged. Copy the Request ID from the error message and send it to support@adapty.io so the team can locate the failed request.
An offer doesn’t apply at purchase
The Builder validates that each product element has a product, but it doesn’t validate the product’s offer. If the offer is later changed or removed in the store or in Adapty, the flow still publishes, and the purchase runs without the offer. After changing offers, reopen the flow, reselect the offer for each affected product element, and republish.
An offer price is empty in the preview
The builder preview can’t reach the stores, so offer_price, offer_billing_period, and offer_full_duration show the variable name in braces instead of a value. They resolve when the SDK renders the flow in your app. To preview the conditions that depend on the offer type, see Preview products and offers.
Publishing fails after entering a shorthand hex color
Enter every color as exactly six hex digits, such as #FFFFFF. The color field accepts a shorter value and never expands it, so a shorthand such as #FFF reaches the SDK configuration malformed and the publish is rejected. Opacity is unrelated — the same value fails at 100% opacity. A four-digit value is the exception that costs the most: it publishes, and renders a color you didn’t pick.
Typography edits don’t reach an element state
Once a state, such as Selected, has its own typography settings, edits to the Default state’s typography — including applying a different text style — don’t affect that state. Edit the state’s typography directly.
Elements lose their styling after a text style is deleted
Deleting a text style doesn’t copy its settings into the elements that use it: those elements fall back to default typography. Before deleting a style, reassign the affected elements to another style or set their typography manually.
Conditions and variables break after an element ID change
Conditions and text variables reference elements by Element ID, and changing the ID doesn’t update the references — they silently stop resolving. Set the Element ID before referencing it. If you have to change it, update every condition and variable reference to match. The exception is progress-bar segments: renaming a segment updates its references automatically.
A condition or variable resolves to an empty value
The variable picker lists fields from every screen, so a condition or text variable can reference an input the user hasn’t filled in yet. At runtime, such a reference resolves to an empty value. Reference only fields collected earlier in the flow.
A Set variable action doesn’t change the selected product
Which product is selected isn’t a variable you can assign, so Set variable can’t move the selection. Use the Select product action instead.
An image or video won’t upload
A file outside the Flow Builder’s media limits won’t upload. Verify the file against the Image and Video requirements:
| Element | Formats | Maximum file size | Other limits |
|---|---|---|---|
| Image | .JPG, .PNG, .WEBP | 20 MB | — |
| Video | .MP4, .WEBM | 50 MB | 30 seconds maximum; 640×640 pixels minimum |
These formats aren’t supported:
- Animated GIFs and animated WEBPs: To add motion, use a Video element instead.
- SVG: Export the file as PNG or WEBP. For icons, you don’t upload anything — the Icon element draws from the bundled Tabler Icons library.
A footer doesn’t render
A footer renders only on a screen where Vertical scroll is enabled. Enable Vertical scroll in Screen settings > Scroll.