GoogleCloudPlatform / artifact-registry-maven-tools

Apache License 2.0
22 stars 23 forks source link

400 Bad Request when trying to validate checksum #87

Closed tpolekhin closed 6 months ago

tpolekhin commented 1 year ago

Hello!

We are using this plugin is conjunction with GCP Artifact Registry remote repositories for Maven Central. We have noticed that after the switch we get a lot of Checksum validation failed, no checksums available from central errors in the build logs. After investigating a bit further is seems like the issue is cause by the 400 Bad Request error when trying to get the checksum:

[DEBUG] Could not validate SHA-1 checksum for javax/inject/javax.inject/1/javax.inject-1.jar
org.eclipse.aether.transfer.ChecksumFailureException: Checksum validation failed: Received an error from the remote server.
    at org.eclipse.aether.connector.basic.ChecksumValidator.validateExternalChecksums (ChecksumValidator.java:199)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validate (ChecksumValidator.java:122)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:469)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:383)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0 (RunnableErrorForwarder.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
    at java.lang.Thread.run (Thread.java:829)
Caused by: org.apache.maven.wagon.TransferFailedException: Received an error from the remote server.
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.getInputStream (ArtifactRegistryWagon.java:68)
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.getIfNewer (ArtifactRegistryWagon.java:124)
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.get (ArtifactRegistryWagon.java:96)
    at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:523)
    at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:429)
    at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:403)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.fetchChecksum (BasicRepositoryConnector.java:442)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validateExternalChecksums (ChecksumValidator.java:189)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validate (ChecksumValidator.java:122)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:469)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:383)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0 (RunnableErrorForwarder.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
    at java.lang.Thread.run (Thread.java:829)
Caused by: com.google.api.client.http.HttpResponseException: 400 Bad Request
GET https://us-central1-maven.pkg.dev/<PROJECT_ID>/maven/javax/inject/javax.inject/1/javax.inject-1.jar.sha1
{"error":"Request contains an invalid argument."}
[DEBUG] Could not validate MD5 checksum for javax/inject/javax.inject/1/javax.inject-1.jar
org.eclipse.aether.transfer.ChecksumFailureException: Checksum validation failed: Received an error from the remote server.
    at org.eclipse.aether.connector.basic.ChecksumValidator.validateExternalChecksums (ChecksumValidator.java:199)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validate (ChecksumValidator.java:122)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:469)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:383)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0 (RunnableErrorForwarder.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
    at java.lang.Thread.run (Thread.java:829)
Caused by: org.apache.maven.wagon.TransferFailedException: Received an error from the remote server.
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.getInputStream (ArtifactRegistryWagon.java:68)
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.getIfNewer (ArtifactRegistryWagon.java:124)
    at com.google.cloud.artifactregistry.wagon.ArtifactRegistryWagon.get (ArtifactRegistryWagon.java:96)
    at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:523)
    at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:429)
    at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:403)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.fetchChecksum (BasicRepositoryConnector.java:442)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validateExternalChecksums (ChecksumValidator.java:189)
    at org.eclipse.aether.connector.basic.ChecksumValidator.validate (ChecksumValidator.java:122)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:469)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:383)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder.lambda$wrap$0 (RunnableErrorForwarder.java:73)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
    at java.lang.Thread.run (Thread.java:829)
Caused by: com.google.api.client.http.HttpResponseException: 400 Bad Request
GET https://us-central1-maven.pkg.dev/<PROJECT_ID>/maven/javax/inject/javax.inject/1/javax.inject-1.jar.md5
{"error":"Request contains an invalid argument."}

Corresponding issue also was opened in the GCP Artifact Registry issue tracker: https://issuetracker.google.com/issues/284281866