Skip to content

“Version Code Has Already Been Used”: How to Fix It

Play Console rejects uploads that reuse a version code. Why it happens, how to bump it in Gradle, Flutter, React Native and Unity, and how to avoid it.

Updated 3 min readBy the TestersZone team

Short answer

Every build you upload to Google Play needs a versionCode that hasn’t been used before for that app, on any track. Increase versionCode (for example from 3 to 4), rebuild, and upload again. versionName (like “1.0.3”) is what users see and can be anything.

Why it happens

Android’s versioning docs say you can’t upload a build with a versionCode you’ve already used. That includes builds uploaded to internal, closed or production tracks, and even uploads you later discarded. Common causes:

  • You rebuilt without bumping the number.
  • Your CI builds from a branch where the number is behind.
  • You uploaded the same code to internal testing and then again to closed testing (promote the release instead).

Where to change it

ToolSetting
Android Studio (Gradle)versionCode in defaultConfig of app/build.gradle(.kts)
Flutterversion: 1.0.3+4 in pubspec.yaml (the number after + is versionCode)
React Nativeandroid/app/build.gradle, or app.json → android.versionCode with Expo
Expo EASSet autoIncrement in eas.json, or bump android.versionCode
UnityPlayer Settings → Other Settings → Bundle Version Code
Capacitorandroid/app/build.gradle

Rules worth knowing

  • versionCode must be a positive integer. Google’s maximum is 2,100,000,000.
  • Higher means newer. Devices only update to a higher versionCode.
  • versionName is free text shown to users, like 1.4.0 or 1.4.0-beta.

Avoid it for good

  • Let CI set versionCode from a build number or a timestamp-like integer.
  • When moving a build from internal to closed testing, use promote release rather than re-uploading.
  • Keep a short release log: versionCode, versionName, track and date. It doubles as evidence for your production access application.

Frequently asked questions

I discarded a release. Can I reuse its version code?

Assume not. If a bundle with that version code was uploaded, use a higher number.

Do I have to increase versionName too?

No. versionName is just the label users see. Only versionCode must be new.

How do I see which version codes I’ve used?

Play Console’s App bundle explorer lists every uploaded bundle with its version code.

Sources and how we keep this accurate

Policy facts are checked against Google's own documentation on the date shown above. Google can change requirements at any time, so confirm in your Play Console. Where we give advice or estimates rather than Google's rules, we say so. TestersZone is independent and not affiliated with Google. Drafts are AI-assisted and reviewed by our team.

Need 12 testers? Get them free.

Test 3 apps, earn 60 credits, and list your app for up to 20 real testers with verified daily check-ins.

Start free

Keep reading

Browse all answers, or see the quick answers, guides and comparisons.