Troubleshoot phone builds and store releases
Use this page when something goes wrong in Releases on the way to the App Store or Google Play: the App ID, a store connection, a phone build, a test upload, or store review.
The App ID won’t save
What it means: FlutterFlow checks the App ID when you save the store listing. If the stores can’t use the ID, the App ID field explains what’s wrong, and the listing shows Check the App ID.
Fix it:
- Open Releases › Store listing › App ID and read the message under App ID.
- Correct the ID:
- Use at least two parts separated by dots, such as
com.yourname.app. - Start every part with a letter and use only letters and numbers. iPhone App IDs can’t contain underscores.
- Don’t start the ID with
com.example., which Google Play refuses. - Replace any part that the message flags as a reserved word on Android.
- Use at least two parts separated by dots, such as
- Select Save changes.
Only an owner can set the App ID. See App ID.
A build or submission says your app has no App ID
What it means: Your app doesn’t have a saved App ID yet. Until an owner saves one, the App ID panel shows a suggested ID with a Suggested chip. A phone build stops with “The app needs an app id.”, a review submission stops with “This project has no app ID.”, and the store setup step says “Save the App ID in the store listing first. Store app records cannot change their App ID.”
Fix it:
- Open Releases › Store listing › App ID.
- Select Use suggestion to keep the suggested ID, or select Enter manually and type your own ID in App ID.
- Select Save changes.
- Restart the build or submission.
Save the App ID before creating your app in App Store Connect or Play Console, because store app records can’t change their App ID later. See App ID.
Apple won’t accept your App ID
What it means: Your app uses the same App ID in both stores. Android App IDs allow underscores, but iPhone App IDs don’t, so an iPhone build stops when the App ID contains an underscore. The message states that Apple refuses the ID and asks you to use only letters, digits, and dots.
Fix it:
- Open Releases › Store listing › App ID and select Change App ID….
- In Change the App ID?, select Change App ID.
- Enter an ID without underscores in App ID, and then select Save changes.
- In On your phone, select Prepare for TestFlight (or Prepare 0.1 for TestFlight with your version number).
If your app is already in a store, changing the App ID creates a separate store app without your existing downloads or reviews. See Change the App ID.
Apple or Google refuses your key when you connect
What it means: FlutterFlow checks your key with Apple or Google before saving it. If the check fails, the connect step explains what’s wrong and doesn’t save the key.
Fix it:
- Read the message in the connect step.
- Fix the issue named in the message:
- Apple: Choose the unmodified
.p8file that Apple let you download when you made the key. Confirm that the Key ID matches that file and the Issuer ID matches your team. - Google: Choose the unmodified service-account
.jsonkey that Google Cloud downloaded. An OAuth client JSON file doesn’t work.
- Apple: Choose the unmodified
- Select Connect for Apple or Save key for Google. If a step in Set up with Google failed, select Try again.
If the message says “Couldn’t reach App Store Connect to check the key.” or “Couldn’t reach Google to check the key.”, wait a minute and try again.
See Connect App Store Connect or Connect Google Play.
A store connection shows Needs attention
What it means: Apple or Google refused FlutterFlow’s last request using your app’s key. The store’s card in Releases says App Store Connect connection failed or Play Console connection failed, and the account shows Needs attention. The connect step says “App Store Connect refused FlutterFlow’s last request with this key.” or “Play Console refused FlutterFlow’s last request with this key.”, followed by the store’s reason.
Fix it:
- On the store’s card, select Reconnect and read the store’s reason.
- Create a new key for the same account (from the same Apple team for Apple, or for the same service account for Google).
- Upload the new key:
- Apple: Enter the key’s details and select Reconnect.
- Google: Select Set up with Google, or select Set up manually, add the
.jsonfile, and select Replace key.
- For Google, confirm that the service account still has its permissions in Play Console.
The new key updates the connection for every app that uses it. Only the owner of the account that holds the store connection can reconnect it; if you can’t, the step names who can.
See Connect App Store Connect or Connect Google Play.
Google Play shows Key saved, not Connected
What it means: FlutterFlow saved your Google key, but hasn’t reached your app in Play Console with it yet. The Google Play drawer shows Google Play account · Key saved, and changes to Connected once all of the following are true:
- You invited the service account in Play Console with the required permissions.
- You saved your App ID.
- You created your app in Play Console with that App ID and uploaded its first file there.
Fix it:
- In the Connect FlutterFlow to Google Play step, follow 2. Grant Play Console access to invite the service account. New permissions can take a few minutes to apply.
- Save your App ID in Releases › Store listing › App ID.
- Create your app in Play Console and upload its first file.
Once FlutterFlow reaches your app, 2. Grant Play Console access shows FlutterFlow found your app in Google Play. See Grant Play Console access and Add to Play Console.
FlutterFlow is waiting for your app in a store’s console
What it means: FlutterFlow uploads a version only after your app exists in App Store Connect or Play Console with your App ID. Until then, the store’s card says “Create the app in App Store Connect before uploading to TestFlight.” or “Create the app in Play Console before uploading to Google Play.”, and On your phone for iPhone shows Waiting for the app in App Store Connect. FlutterFlow checks for the app periodically and uploads the version once it finds it. If the app still isn’t in the console after about a day, the upload fails; create the app and send the version to testers again. See An upload to TestFlight or Google Play failed.
Fix it:
- Create the app in App Store Connect or Play Console using the exact App ID in Releases › Store listing and the account shown under Store account.
- For Google Play, upload the app’s first file in Play Console and confirm that the service account has access. See Google Play shows Key saved, not Connected.
- In Releases, open Add your app in App Store Connect or Add your app in Play Console. While the step is open, FlutterFlow checks for your app and shows App found. once it finds it.
See Add to App Store Connect or Add to Play Console.
A phone build failed
What it means: FlutterFlow couldn’t build your app for the phone. On your phone in Releases says Couldn’t prepare the iPhone app. or Couldn’t prepare the Android app., followed by the reason. If an earlier Android build is still available, the Android app row shows Ready, its version, and Latest build failed. instead. To read a long reason in full, open Error details on a computer or select Details on a phone.
Fix it:
-
Match the reason to the following table:
The reason says What to do “The build machine stopped responding. Build again.” Build again. “The app’s icon could not be fetched. Build again.” Build again. The app’s icon isn’t a readable PNG or must be square Set the icon again in App icon. See App icon. The build machines are being moved See A build says the build machines are being moved. A file exceeds the size limit See A build says the app file is too large. The App Store takes a version of up to three numbers See The App Store won’t take this version number. -
Select Try again.
If the build fails the same way again without a clear fix, send us feedback.
A build says the build machines are being moved
A phone build shows “Couldn’t prepare the Android app.” or “Couldn’t prepare the iPhone app.”. If an earlier Android build is still ready, the Android row shows its version followed by “Latest build failed.” instead. Below that line, the message reads “The build machines are being moved to Flutter {flutter}. Build again in a little while.”, with a version number in place of {flutter}.
What it means: FlutterFlow builds every app with the same version of its build tools, and the machine that ran your build had a different version. Your app has no error; wait for FlutterFlow to finish updating its build machines.
Fix it:
- Wait a while.
- Select Try again to build again.
A build says the app file is too large
What it means: The Android APK or iPhone .ipa file exceeds the size limit, so the build stops. The reason starts with “The APK is” or “The .ipa is” and states the file’s size and the limit.
Fix it: Send us feedback with the reason from the build.
The App Store won’t take this version number
What it means: The App Store requires a version number of up to three numbers, such as 1.2.3. If your app’s version number uses another format, the iPhone build stops and states what the App Store accepts.
Fix it:
Your app’s version number lives in the app’s code rather than in a settings panel. To change it, ask the agent in a thread:
Example request
“Change my app’s version number to 1.0.”
For iPhone builds, the version number takes up to three whole numbers separated by dots (such as 1.2.3), each up to nine digits with no leading zeros (version 1.02 fails on iPhone). Push the change to your app so the next version you send to testers uses the new number.
Then send the new version to testers and submit it for review.
An upload to TestFlight or Google Play failed
What it means: FlutterFlow built the version, but TestFlight or Google Play refused the upload. The store’s card says Upload of 0.1 to TestFlight failed or Upload of 0.1 to Google Play failed (with your version number), and shows any reason returned by the store.
Fix it:
- Read the reason and fix what it names.
- Select Try again. FlutterFlow uploads the version again, or prepares a new build if the store can’t accept the existing one.
See Send to testers.
Your testers don’t get the first Google Play test upload
What it means: Google Play holds your first test upload as a draft until you start its rollout in Play Console. The Google Play card says Roll out 0.1 in Play Console (with your version number).
Fix it:
- On the Google Play card, select Open Play Console.
- In Play Console, start the rollout of the draft test release.
Later test uploads roll out automatically. See First Google Play rollout.
Google Play takes test versions but not releases for everyone
What it means: Google Play accepts your test versions, but your Google Play account can’t release the app to everyone yet. A new personal developer account must have 12 testers opted in to a closed test continuously for 14 days before applying for production access. FlutterFlow doesn’t track your testers or days. The Google Play card says Apply for production access.
Fix it:
- Run your closed test until it meets Google’s requirement.
- On the Google Play card, select Apply in Play Console and submit your application there.
- In FlutterFlow, select I’ve applied.
While Google reviews your request, the card shows Google is reviewing your production access request. If you selected I’ve applied too early, select I haven’t applied yet. See Google’s rule for new accounts.
App Store Connect already has this version number
What it means: App Store Connect already has a version with your app’s version number, and Apple doesn’t allow duplicate version numbers. The App Store card says Submission of 0.1 to Apple is blocked and states that the version is already in App Store Connect.
Fix it:
Your app’s version number lives in the app’s code rather than in a settings panel. To change it, ask the agent in a thread:
Example request
“Change my app’s version number to 1.0.”
For iPhone builds, the version number takes up to three whole numbers separated by dots (such as 1.2.3), each up to nine digits with no leading zeros (version 1.02 fails on iPhone). Push the change to your app so the next version you send to testers uses the new number.
Then send the new version to testers and submit it for review.
Submitting a version for review is blocked
What it means: The store won’t accept the version for review yet. The store’s card says Submission of 0.1 to Apple is blocked or Submission of 0.1 to Google is blocked (with your version number) and states the reason.
Fix it:
- Read the reason. To inspect the version, select Open 0.1.
- Fix what the reason names. For store listing details, edit Releases › Store listing.
- Submit the version for review again.
See Submit for review.
Google didn’t approve a version
What it means: Google reviewed the version and didn’t approve it. The Google Play card says Google didn’t approve 0.1 (with your version number). Google provides the reason in Play Console rather than in FlutterFlow.
Fix it:
- On the Google Play card, select Open Play Console and read Google’s reason.
- Fix what Google asks for. If your app needs changes, ask the agent in a thread and push the changes.
- Send the new version to testers, and then submit it for review.
Apple requested changes
What it means: Apple reviewed the version and requested changes. The App Store card says Apple requested changes to 0.1 (with your version number) and includes Apple’s message when available.
Fix it:
- Select Fix with the agent to change your app, or select Reply in App Store Connect to answer Apple directly.
- Submit the version again.
A version waits in review or in a store’s console
What it means: After you submit a version, the store’s card in Releases shows whether the next step belongs to the store or to you (with your version number in place of 0.1):
| The card says | What to do |
|---|---|
| Apple is reviewing 0.1 or Google is reviewing 0.1 | Wait for the store’s decision. |
| Finish in App Store Connect, with “Action required for 0.1 in App Store Connect.” | Select Open App Store Connect and complete the requested action. |
| See App Store Connect, with “Check the status of 0.1 in App Store Connect.” | Select Open App Store Connect and check the version’s status. |
| Roll 0.1 out in Play Console | Select Open Play Console and start the rollout of the draft release. |
| Send 0.1 for review in Play Console | Select Open Play Console and send the release to Google for review. |
| Publish 0.1 in Play Console | Google approved the version. Select Open Play Console and publish it. |
| Finish in Play Console | Select Open Play Console to finish or resume the rollout, or check the release’s status. |
Fix it:
- Read the card’s title and the line under it.
- Select Open App Store Connect or Open Play Console if shown, and complete the step there.
See Release status.
Problems covered on other pages
- A part of a page says “Couldn’t load …” or “Couldn’t read …” (Troubleshoot loading and reconnecting)
- The Android test build won’t install over the Google Play version (Troubleshoot sharing and phone installs)
- You don’t have an Apple Developer account (Troubleshoot sharing and phone installs)