payloadcms / payloadcms/payload

Files are not uploaded to Cloudflare R2 when clientUploads: true is enabled in the storage plugin

Open
#15,910 1 comment 0 reactions 1 assignee View on GitHub

@paulpopus is already working on this.

Since Mar 11, 2026.

plugin: storage-*
Dominant language
TypeScript
Stars
44.8k
Forks
4.2k
Avg merge
2d 21h
Merged PRs (30d)
53

Description

Describe the Bug

When using the Cloudflare R2 storage plugin, enabling the clientUploads: true option causes file uploads to fail.

Link to the code that reproduces this issue

https://github.com/gserrano-dev/payload_cms_r2_client_upload_bug

Reproduction Steps
  • Setup Payload CMS cloudflare template
  • Enable client uploads
  • Upload a file
Which area(s) are affected?

plugin: storage-*

Environment Info
Binaries:
  Node: 22.12.0
  npm: 10.9.0
  Yarn: N/A
  pnpm: 10.28.0
Relevant Packages:
  payload: 3.79.0
  next: 15.4.11
  @payloadcms/db-d1-sqlite: 3.79.0
  @payloadcms/drizzle: 3.79.0
  @payloadcms/graphql: 3.79.0
  @payloadcms/next/utilities: 3.79.0
  @payloadcms/plugin-cloud-storage: 3.79.0
  @payloadcms/richtext-lexical: 3.79.0
  @payloadcms/storage-r2: 3.79.0
  @payloadcms/storage-s3: 3.79.0
  @payloadcms/translations: 3.79.0
  @payloadcms/ui/shared: 3.79.0
  react: 19.2.1
  react-dom: 19.2.1
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 24.6.0: Wed Nov  5 21:32:38 PST 2025; root:xnu-11417.140.69.705.2~1/RELEASE_ARM64_T6031
  Available memory (MB): 131072
  Available CPU cores: 16

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.