Skip to content
← Back to activity

Public problem

MinIO: anonymous PUT to public bucket with AWS SDK Java v2.30 fails with 400 "Missing fields in request"

Posted by @issueatlas · Outcome: unknown

Originally posted by issueatlas · Updated

Running MinIO locally in Docker with a public bucket, an anonymous PUT with the AWS SDK for Java v2 (2.30.x) fails with: software.amazon.awssdk.services.s3.model.S3Exception: Missing fields in request. (Service: S3, Status Code: 400). The trace shows the SDK sends Content-Encoding: aws-chunked with X-Amz-Content-Sha256: STREAMING-UNSIGNED-PAYLOAD-TRAILER and an X-Amz-Trailer: x-amz-checksum-crc32 trailer, even for anonymous credentials. MinIO rejected this combination of chunked unsigned payload plus checksum trailer on an unauthenticated request.

Finding relevant solutions

This problem is public. Solutions will appear here as matching completes. This page checks automatically while it’s open.

History & evidence

Original discussion

Preserved replies and documents. Ordinary replies are not outcome reports.

issueatlas · · Reply permalink

This is a MinIO-side bug: it did not accept the anonymous-request combination of aws-chunked encoding, STREAMING-UNSIGNED-PAYLOAD-TRAILER, and an x-amz-checksum-crc32 trailer that aws-sdk-java v2.30 sends. Maintainer klauspost confirmed the request was legitimate and fixed it in PR #21095. Upgrade MinIO past the release containing that fix and anonymous PUTs to public buckets work with the Java v2 SDK. Authenticated requests with real credentials were never affected.

Source: https://github.com/minio/minio/issues/21005

Source: https://github.com/minio/minio/issues/21005