Large uploads fail
This page helps when small files upload but large ones fail, when an upload stalls or keeps retrying, or when a large file’s ETag does not match its MD5. It also covers uploads rejected because of an encryption or storage class option.
Large files are uploaded in parts (multipart upload). Most tools switch to multipart by themselves — for example aws s3 cp for files over 8 MB.
Quick fixes
Checksum errors with new AWS tools
AWS CLI and AWS SDK versions released from January 2025 add checksums to uploads by default. Zata rejects them on multipart uploads: small files upload, large files fail with XAmzContentSHA256Mismatch. This is the usual cause when a tool “worked before an upgrade”, or when rclone works but another tool fails.
rclone is not affected, and neither are versions older than the ones above.
Fix: tell the tool to calculate checksums only when they are required.
AWS CLI
boto3
JavaScript
Java
Go
Any app
This adds two lines to the [profile zata] section of ~/.aws/config:
In --debug output, these default checksums show up as x-amz-checksum-crc64nvme or x-amz-checksum-crc32 headers (often with x-amz-sdk-checksum-algorithm or x-amz-trailer). The x-amz-content-sha256 header is part of normal signing and is not the problem.
Full setup for each tool: AWS CLI, Python, JavaScript, Java, Go.
Size and part limits
A multipart upload can be much larger than 5 GB. Parts may be uploaded in any order.
EntityTooLarge: use a command that uploads in parts. For example, useaws s3 cpinstead ofaws s3api put-object, which always sends the file in one request.EntityTooSmall: raise the part size in your tool or code.- If the final “complete” step fails, Zata removes that upload. Start the upload again.
Upload stalls or keeps retrying
First upload one small and one large file with the same tool. If only the large one fails with an error code, use the table at the top. If there is no error code but the upload is slow or times out, upload fewer parts at the same time and allow more retries:
AWS CLI
rclone
Check that a large file arrived intact
For a multipart upload, the ETag is not the file’s MD5. It ends in -N, where N is the number of parts, so a different ETag does not mean the file is damaged. Compare the size and a checksum instead:
The size must equal the local file’s size, and the two SHA-256 sums must match. With rclone, rclone check ./folder zata:my-bucket/folder --one-way --download compares the content of files uploaded in parts.
Clean up unfinished uploads
An upload that was never completed or cancelled keeps its parts, and they keep using storage. List them and cancel the ones you do not need:
Take KEY and UPLOAD_ID from the list. Cancelling deletes the parts uploaded so far. A sub-user key may get AccessDenied on the list — use the account owner’s key.
To clean up automatically, add a lifecycle rule with Discard unfinished uploads. See Lifecycle rules.
Test a multipart upload step by step
If another app cannot upload large files, do each multipart step by hand with the AWS CLI. The step that fails shows the problem.
If these steps work with the AWS CLI but your app still fails, the app most likely sends the default checksums. Set its checksum option to “when required”, or use the environment variables in the Any app tab above.
Options to turn off in your tool
Some tool options ask for S3 features that Zata does not offer. Every upload fails until you turn them off:
See the real error
Zata’s error responses contain an error code but no message text, so look for the code. The debug output contains your access key ID — remove it before you share the output.
Still stuck?
Contact Zata support (see Get support) and include:
- the tool and its version (
aws --version,rclone version, or your SDK version) - the endpoint you use and the region of the bucket (Indore or Mumbai)
- the file size, and the part size and concurrency if you set them
- the exact error code, and the
RequestIdfrom the error response - the debug output from above, with access keys removed