fastlane supply "mandatory to have an APK/AAB in this track" in CI
Google Play rejected the release because the track has no binary attached. supply was asked to create or update a release (notes, rollout) for a track that contains no APK or AAB, so there is nothing for Play to release.
What this error means
supply fails with "Google Api Error: It is mandatory to have an APK/AAB in this track". It commonly appears when promoting between tracks or pushing only release notes without an upload.
[!] Google Api Error: Invalid request - It is mandatory to have an apk or aab in this
track but there is none.Common causes
The release pushes metadata without a binary
supply was invoked with --skip_upload_aab / --skip_upload_apk or with only notes, so the track release has no artifact.
Promotion targets a track that has no build yet
Promoting to a track that never received a binary leaves the release empty.
How to fix it
Attach the binary to the track
- Pass the AAB (or APK) on the supply call for that track.
- If promoting, ensure the source track has a processed build first.
- Re-run supply with the artifact present.
fastlane supply --json_key google-play-key.json \
--package_name com.example.app --aab app-release.aab --track internalUse version_code promotion correctly
To move an existing build between tracks without re-uploading, target the build by version_codes_to_retain / promote rather than creating an empty release.
fastlane supply --track internal --track_promote_to production \
--version_code 1234 --json_key google-play-key.json --package_name com.example.appHow to prevent it
- Always attach a binary when creating a new track release.
- Promote existing builds by version code instead of empty releases.
- Order pipeline steps so a binary exists before notes are pushed.