{"action":"reopened","issue":{"url":"https://api.github.com/repos/Triple-T/gradle-play-publisher/issues/531","repository_url":"https://api.github.com/repos/Triple-T/gradle-play-publisher","labels_url":"https://api.github.com/repos/Triple-T/gradle-play-publisher/issues/531/labels{/name}","comments_url":"https://api.github.com/repos/Triple-T/gradle-play-publisher/issues/531/comments","events_url":"https://api.github.com/repos/Triple-T/gradle-play-publisher/issues/531/events","html_url":"https://github.com/Triple-T/gradle-play-publisher/issues/531","id":417987428,"node_id":"MDU6SXNzdWU0MTc5ODc0Mjg=","number":531,"title":"Concurrent uploads for variant release exception on publishApt","user":{"login":"foal","id":458209,"node_id":"MDQ6VXNlcjQ1ODIwOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/458209?v=4","gravatar_id":"","url":"https://api.github.com/users/foal","html_url":"https://github.com/foal","followers_url":"https://api.github.com/users/foal/followers","following_url":"https://api.github.com/users/foal/following{/other_user}","gists_url":"https://api.github.com/users/foal/gists{/gist_id}","starred_url":"https://api.github.com/users/foal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/foal/subscriptions","organizations_url":"https://api.github.com/users/foal/orgs","repos_url":"https://api.github.com/users/foal/repos","events_url":"https://api.github.com/users/foal/events{/privacy}","received_events_url":"https://api.github.com/users/foal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2019-03-06T20:09:57Z","updated_at":"2019-03-28T03:22:44Z","closed_at":null,"author_association":"NONE","body":"### Describe the bug\r\n\r\nException while publishing APK to Google play\r\n\r\n```\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nExecution failed for task ':app:publishReleaseApk'.\r\n> Concurrent uploads for variant release. Make sure to synchronously upload your APKs such that they don't conflict.\r\n\r\n* Try:\r\nRun with --info or --debug option to get more log output. Run with --scan to get full insights.\r\n\r\n* Exception is:\r\norg.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:publishReleaseApk'.\r\n        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)\r\n        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)\r\n        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)\r\n        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)\r\n        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)\r\n        at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:79)\r\n        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)\r\n        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)\r\n        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)\r\n        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)\r\n        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)\r\n        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)\r\n        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)\r\n        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)\r\n        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)\r\n        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)\r\n        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)\r\n        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)\r\n        at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)\r\n        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)\r\n        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)\r\n        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)\r\n        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)\r\n        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)\r\n        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)\r\n        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)\r\n        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)\r\n        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)\r\n        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)\r\nCaused by: java.lang.IllegalStateException: Concurrent uploads for variant release. Make sure to synchronously upload your APKs such that they don't conflict.\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishPackageBase.handleUploadFailures(PlayPublishPackageBase.kt:128)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk.publishApk(PublishApk.kt:65)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk.access$publishApk(PublishApk.kt:21)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk$publishApks$1$1.execute(PublishApk.kt:47)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk$publishApks$1$1.execute(PublishApk.kt:21)\r\n        at org.gradle.api.internal.changedetection.changes.RebuildIncrementalTaskInputs.doOutOfDate(RebuildIncrementalTaskInputs.java:45)\r\n        at org.gradle.api.internal.changedetection.changes.StatefulIncrementalTaskInputs.outOfDate(StatefulIncrementalTaskInputs.java:32)\r\n        at org.gradle.api.internal.changedetection.changes.RebuildIncrementalTaskInputs.outOfDate(RebuildIncrementalTaskInputs.java:29)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk$publishApks$1.invoke(PublishApk.kt:44)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk$publishApks$1.invoke(PublishApk.kt:21)\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishTaskBase$write$1.invoke(PlayPublishTaskBase.kt:76)\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishTaskBase$write$1.invoke(PlayPublishTaskBase.kt:20)\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishTaskBase.read(PlayPublishTaskBase.kt:72)\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishTaskBase.read$default(PlayPublishTaskBase.kt:39)\r\n        at com.github.triplet.gradle.play.tasks.internal.PlayPublishTaskBase.write(PlayPublishTaskBase.kt:75)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk.publishApks(PublishApk.kt:38)\r\n        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)\r\n        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)\r\n        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)\r\n        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)\r\n        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)\r\n        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)\r\n        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)\r\n        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)\r\n        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)\r\n        ... 32 more\r\nCaused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden\r\n{\r\n  \"code\" : 403,\r\n  \"errors\" : [ {\r\n    \"domain\" : \"androidpublisher\",\r\n    \"message\" : \"APK specifies a version code that has already been used.\",\r\n    \"reason\" : \"apkUpgradeVersionConflict\"\r\n  } ],\r\n  \"message\" : \"APK specifies a version code that has already been used.\"\r\n}\r\n        at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:150)\r\n        at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)\r\n        at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)\r\n        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:432)\r\n        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)\r\n        at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)\r\n        at com.github.triplet.gradle.play.tasks.PublishApk.publishApk(PublishApk.kt:63)\r\n        ... 58 more\r\n\r\n```\r\n\r\nConfiguration is\r\n```groovy\r\n   play {\r\n        serviceAccountCredentials = file(\"${home}/play/Google Play Android Developer.json\")\r\n        track = \"internal\"\r\n        releaseStatus = \"draft\"\r\n        resolutionStrategy = \"auto\"\r\n        outputProcessor {\r\n            versionNameOverride = \"$versionNameOverride.$versionCode\"\r\n        }\r\n    }\r\n```\r\n#### Versions\r\n\r\n - Gradle Play Publisher: 2.1.0\r\n - Gradle Wrapper (if applicable): 4.6\r\n-  Gradle: gradle-4.10.1-all.zip \r\n - Android Gradle Plugin (if applicable): 3.3.2\r\n"}}
{"actor":{"display_login":"SUPERCILEX"}}