Skip to content
Latchkey

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.

fastlane supply
[!] 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

  1. Pass the AAB (or APK) on the supply call for that track.
  2. If promoting, ensure the source track has a processed build first.
  3. Re-run supply with the artifact present.
Terminal
fastlane supply --json_key google-play-key.json \
  --package_name com.example.app --aab app-release.aab --track internal

Use 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.

Terminal
fastlane supply --track internal --track_promote_to production \
  --version_code 1234 --json_key google-play-key.json --package_name com.example.app

How 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.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →