Installation issues
Compose version conflict
Problem: Build fails with Compose compiler version mismatch. Solution: Ensure your Compose compiler version is compatible:Runtime issues
Checkout stays in Loading state
Problem:PrimerCheckoutState.Loading never transitions to Ready.
Possible causes:
- Invalid or expired client token
- Network connectivity issues
- Incorrect API key in client session creation
Payment methods not showing
Problem:PrimerPaymentMethods shows empty list.
Possible causes:
- No payment methods configured in Primer Dashboard
- Client session missing required fields
- Payment methods not enabled for the currency/country
currencyCode and countryCode.
Card form fields not appearing
Problem: Some card form fields (cardholder name, billing address) don’t appear. Explanation: Fields are configured by your Primer Dashboard settings. Only fields marked as required in the Dashboard will appear in the form. This is expected behavior.3DS challenge not completing
Problem: Payment gets stuck during 3DS authentication. Solution: Ensure your app’s Activity hasandroid:configChanges="orientation|screenSize" to prevent the WebView from being destroyed during configuration changes.
Compose-specific issues
Recomposition causes re-initialization
Problem: Checkout reinitializes on every recomposition. Solution: UserememberPrimerCheckoutController() which survives recomposition. Don’t create the controller inside conditionals or callbacks:
State not updating in UI
Problem: UI doesn’t reflect state changes. Solution: UsecollectAsStateWithLifecycle():
Getting help
If you encounter an issue not covered here:- Check the error’s
diagnosticsIdin logs - Verify your configuration in the Primer Dashboard
- Contact Primer support with the
diagnosticsId
Next steps
Best Practices
Production-ready tips
First Payment
Verify your integration