Troubleshooting

Common issues with flows (surveys, forms, messages) not appearing, widget readiness, user identity, and auth.

Last reviewed

Troubleshooting

Flow doesn't appear

This is the most common issue. Check these in order:

  • Is the flow published? Unpublished flows won't show up. Check the flow status in the getuserfeedback.com dashboard.
  • Do the targeting rules match? If your flow targets a specific plan, page URL, or user trait, make sure the current session actually matches. Test with a broad rule first (e.g. all users, all pages) to confirm the widget is working.
  • Is the API key correct for this environment? Staging and production apps have different API keys. Make sure the key matches the app where the flow is published.
  • Has the user already responded? By default, flows don't show again to users who have already responded. Surveys are the most common kind of flow, but the same applies to forms and in-app messages.

Widget not ready

If open(), prefetch(), or prerender() fails early, make sure:

  • The widget has been initialized. In React or React Native, this means GetUserFeedbackProvider is mounted. With the JavaScript SDK, createClient({ apiKey }) must have run.
  • If you set disableAutoLoad: true in the JavaScript or React SDK, call client.load() (or load() from useGetUserFeedback()) before trying to open a flow.
  • The API key belongs to the environment you're testing.
  • In React Native, make sure the app build includes the required react-native-webview peer dependency.

React Native client commands return promises. Await or catch open(), prefetch(), and prerender() so rejected requests are visible in your logs.

Flow requires user identity

If the flow's targeting rules require user identity, call identify() before the flow can appear. This is one of the most common reasons a flow works in testing but doesn't show up in production — the targeting rule expects a trait that hasn't been sent yet.

For React Native, call identify() from a component below GetUserFeedbackProvider and wait for it to finish before opening a targeted flow.

Wrong or stale identifiers

Check that the same app owns all of these:

  • the API key
  • the flow ID
  • the published flow version

If you use advanced handles with prerender() and custom containers, keep the same client instance and flow handle for the full open and close lifecycle.

Identity verification failures

When identity verification is enabled, the usual causes are:

  • wrong issuer
  • wrong JWKS endpoint
  • token signed with a different algorithm than the one selected in Widget settings
  • missing or incorrect protected typ: gx-widget+jwt header
  • missing or expired exp claim
  • token minted for the wrong audience

Copy the exact Audience shown in Widget settings into the token's aud claim.