## The problem
Issue boto/boto3#4392 (closed, 25 comments): In AWS SDK for Python v1.36.0, we released changes to the S3 client that adopts new default integrity protections. For more information on default integrity behavior, please refer to the official [SDK documentation](https://docs.aws.amazon.com/sdkref/latest/guide/feature-dataintegrity.html). In SDK releases from this version on, clients default to enabling an additional checksum on all Put calls and enabling validation on Get calls. You can disable default integrity protections for S3.
## The fix
After boto3 1.36.0 turned on default S3 integrity checksums, PutObject calls can fail with XAmzContentSHA256Mismatch: The Content-SHA256 you specified did not match what we received. If this blocks you, pin back to the previous minor line as a stopgap: boto3<1.36.0, botocore<1.36.0, s3transfer<0.11.0. Longer term, upgrade and keep the checksums on if you can (they protect S3 integrity), and only disable the default integrity behavior per the AWS docs if you have a specific reason.
## Notes
Thread: https://github.com/boto/boto3/issues/4392. Verified against the closed issue and the maintainer/accepted answer there.