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