App Rejection Fix
Google Play Low Warning / notice

Version code already used: Play Console refuses the bundle

Play Console rejects the upload because an app bundle with that version code was uploaded before. Version codes are consumed permanently across every track, including builds that were later deleted or never released.

Typical wording

Version code 42 has already been used. Try another version code.

Common causes

  • The same bundle was uploaded earlier to internal, closed or open testing
  • A previous upload was deleted or superseded — the version code stays consumed
  • CI produces the version code from a value that does not increase (a date component, a branch counter that reset)
  • Several build flavours or ABIs share one version code, or a flavour was bumped while another was not
  • A Flutter, React Native or Unity project where the version is set in two places and they disagree

What to check

  • Play Console → App bundle explorer: the highest version code that exists in any track
  • Where versionCode is actually set: build.gradle(.kts), pubspec.yaml (build number after the +), Unity Player Settings, or a CI variable
  • Whether an ABI split or flavour strategy multiplies the version code
  • Whether the previous upload was a manual one-off that the pipeline does not know about

Fix, reply or appeal guidance

  • Raise the version code above the highest ever uploaded — not above the highest released
  • Derive the version code from a monotonic source (a CI build counter or a timestamp with enough resolution), so it can never repeat
  • Keep the user-facing version name separate from the version code; only the code must increase
  • Document the version scheme so manual builds and the pipeline cannot collide

Read the detailed guide: Google Play Submission Checklist →