Skip to main content

Cloudflare R2 integration: PDF download errors (SignatureDoesNotMatch) + deleted files still displayed in lessons

Hello,

I’m using FluentCommunity with Cloudflare R2 as described in the official documentation:
https://fluentcommunity.co/docs/configuring-cloudflare-r2/

Everything was working fine initially β€” I could upload PDFs and download them without any issues. However, recently I started to encounter a problem:

  • PDF files uploaded to R2 can no longer be downloaded. The signed URL returns an XML error with SignatureDoesNotMatch. The X-Amz-Credential shows us-east-1 instead of auto.
  • Image files uploaded in the same way still display without problems.

I’m not exactly sure when this started, but I began receiving user reports about the error two days ago. I have not changed my R2 configuration during this time.

In addition, I noticed another bug:

  • When I delete an uploaded file from the FluentCommunity admin, it disappears from the admin interface, but the file name is still displayed on the front-end course/lesson page. (It cannot actually be accessed or downloaded, but the filename link remains visible to learners.)

For reference, here’s a sample error message (trimmed to avoid sensitive info):

<Error>
  <Code>SignatureDoesNotMatch</Code>
  <Message>The request signature we calculated does not match the signature you provided.</Message>
  <StringToSign>AWS4-HMAC-SHA256 ... /us-east-1/s3/aws4_request ...</StringToSign>
</Error>

And an example of the generated URL (sanitized):

https://<account>.r2.cloudflarestorage.com/...pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...%2F20250901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=...

Environment:

  • WordPress: 6.8.2
  • PHP: 8.3.21
  • FluentCommunity & Pro: 1.7.72

Could you please check:

  1. Why signed URLs for PDFs are failing with us-east-1 instead of auto, even though the configuration follows the documentation.
  2. Why deleted files are not being fully removed β€” the filename is still displayed on the course/lesson front-end.
  3. Have there been any recent changes in the R2 integration code that might explain this new behavior?

This behavior makes it difficult to securely provide PDF lesson materials.

Thank you for your support.