gradle-play-publisher: Receive 403 error when trying to publish to other channel
Hi there,
Thanks for the great plugin beforehand.
We have been using the play publisher plugin and works great deploying to ‘alpha’ channel on Google Play Store. However we just discover when we try to change to publish certain version to ‘beta’ channel, we receive 403 error. The error is like below
> com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "androidpublisher",
"message" : "Version ???? of this app can not be downloaded by any devices as
they will all receive APKs with higher version codes.",
"reason" : "multiApkShadowedActiveApk"
} ],
"message" : "Version ???? of this app can not be downloaded by any devices
as they will all receive APKs with higher version codes."
}
Is there any workaround to publish from ‘alpha’ to ‘beta’ ?
Thanks
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 24 (6 by maintainers)
Commits related to this issue
- Untrack all blocking versions if user requests to do it - #121 — committed to Triple-T/gradle-play-publisher by deleted user 8 years ago
I think the plugin need an update. I have the same problem.
Currently our app has only one version active for all users (1700), we have been using the alpha and beta channels before but we uploaded the (final) “1700” directly to production and therefore disabled the beta channel. (We did the same to beta/alpha earlier when we pushed “1645” directly to beta instead of pushing it to alpha first, which is why our alpha version is even older than the beta version.)
In the “Play Console” Android App by Google it currently looks like this:
The “Google Play Developer Console” (website) looks like this (section ~“manage versions”)

Until now we always uploaded APKs manually but we now want to start using gradle-play-publisher. I am now testing version
1.2.0-beta2with this settings trying to upload version “1702” to alpha:Edit: Initially I only had
jsonFiledefinded and the error occured, so I addedtrackanduntrackOldfor testing but it still doesn’t work (same error). … but we currently get this error:I don’t know why google’s api is complaining about the outdated beta channel apk (1645) which already is inactive. Is there a proper way to work around this or do i have to manually upload a “1701” to beta in order to make gradle-play-publisher able to upload the “1702” version to alpha?
Also: the readme states we can use
untrackOld = true, your comment saiduntrackOld true. Do both ways work? Which one is preferred?I just tried to do the following steps using the web interface:
The web interface does not let me apply that configuration with basically the same message (version 42 can’t be downloaded by any device). So as I see it, the 403 response is more or less the expected behaviour for a configuration like that. I don’t agree with that behaviour but Google obviously assumes that Alpha Testers are a subset of Beta Testers.
There are three things we can do to tackle that issue:
Thank you for your fast reply. We managed to get it to work without the need to publish a new version (causing updates for the users) to production or beta. Here our solution just in case someone else runs into the same issue.
There was a way in the webinterface to update the beta channel from the outdated 1645 to 1700, so it would equalize with production where we were already using 1700: “Manage Beta Version” -> “Create Version” -> “add APK from library” (translated from German “Beta-Version Verwalten” -> “Version erstellen” -> “APK aus der Bibliothek hinzufügen”)
So we got into this state:
After that we were able to use gradle-play-publisher to update the alpha channel directly from the outdated 1610 to the latest 1702 (newer than beta/production)
End result:
The Android Play Developer app now shows it like this: (After the inactive beta 1645 was updated to the 1700 from prodution the beta channel disappered from this view.)

Good summary of the problem. Thank you.
I would say the 3rd option is impossible. Even though some people would not prefer Alpha Testers are a subset of Beta, most projects would prefer that I think. At least Google thinks that way. And changing it at that point may not be possible at all.
I would go for the 2nd option. Automatically doing it is I think too much. But it can be provided as an option. And a task to deactivate an APK in the track would be really helpful.