wellworn
traps · 2 served

Cloudflare R2

cloudflare-r2

S3-compatible object storage with no egress fees; 10 GB free, $0.015 per GB-month after.

symptom and fix
major · * · published · verified 2026-09-08
Code that calls PutBucketVersioning, bucket policies, or S3 event notifications fails against R2.
R2 leaves those unimplemented, along with bucket ACLs, replication, lifecycle analytics, static website hosting, Object Lock, and the three object tagging calls. Check the compatibility page before porting an S3 integration, and move anything policy-shaped into your own application code.
evidence
major · * · published · verified 2026-09-08
A retried multipart upload part leaves the object corrupt or the upload unfinishable.
R2 documents that uploading to the same part number replaces the previous part, and if that retry fails the original part is lost. Retry the whole part with a fresh body you can re-read, never a consumed stream, and verify with CRC-64/NVME, the only algorithm R2 supports for full-object checksums.
evidence

Sorted by severity. Your agent sees the subset that matches the version you have installed: traps(library: "cloudflare-r2", version: "1.0.0").