---
title: Cloudflare R2で「We encountered an internal error. Please try
  again.」というエラーが出たときの対処法
url: https://roboin.io/article/2025/06/05/how-to-fix-cloudflare-r2-internal-error/
description: "@aws-sdk/client-s3を使って、Amazon S3互換のCloudflare
  R2にファイルをアップロードするプログラムを書いていたところ、「We encountered an internal error. Please try
  again.」というエラーが発生しました。"
publishedDate: 2025-06-05T06:30:25.361Z
modifiedDate: 2025-06-05T06:30:25.361Z
thumbnail: https://roboin.io/api/og/2025/06/05/how-to-fix-cloudflare-r2-internal-error/
thumbnailAlt: 記事のサムネイル画像
thumbnailCaption: N/A
---

# Cloudflare R2で「We encountered an internal error. Please try again.」というエラーが出たときの対処法

[@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3)を使って、Amazon S3互換のCloudflare R2にファイルをアップロードするプログラムを書いていたところ、「We encountered an internal error. Please try again.」というエラーが発生しました。

この記事では、このエラーの原因と対処法を解説します。

## 原因

Cloudflare R2はAmazon S3互換を謳っていますが、100%の互換性があるわけではありません。

ドキュメントの[S3 API compatibility](https://developers.cloudflare.com/r2/api/s3/api/)を確認すると、対応していない機能もあることがわかります。

まれによくあるパターンとして、S3の仕様変更にR2が対応できておらず、その結果として@aws-sdk/client-s3からR2を使おうとするとエラーになるというものがあります。

今回のエラーは、@aws-sdk/client-s3のバージョン`3.729.0`以降から導入された仕様変更が原因でした。

AWS SDK for JavaScriptのドキュメントには、次のように書かれています。

> Beginning with version 3.729.0 of the AWS SDK for JavaScript, the SDK provides default integrity protections by automatically calculating a CRC32 checksum for uploads.
> 
> 日本語訳：
> AWS SDK for JavaScriptのバージョン3.729.0以降、このSDKはアップロードのCRC32チェックサムを自動的に計算することで、デフォルトの整合性保護を提供します。
> 
> ——『[Data integrity protection with Amazon S3 checksums - AWS SDK for JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/s3-checksums.html)』

この仕様変更が原因でエラーが出るようになったようです。R2のドキュメントにも次のように書かれています。

> Client version `3.729.0` introduced a modification to the default checksum behavior from the client that is currently incompatible with R2 APIs.
> 
> 日本語訳：
> クライアントバージョン`3.729.0`では、クライアントからのチェックサムのデフォルトの挙動に現在R2 APIと互換性のない変更が加えられました。
> 
> ——『[aws-sdk-js-v3 · Cloudflare R2 docs](https://developers.cloudflare.com/r2/examples/aws/aws-sdk-js-v3/)』

同様に、AWS CLIでもバージョン`2.23.0`以降と`1.37.0`以降では、R2と互換性のない変更が加えられているようです。

> Client versions `2.23.0` and `1.37.0` introduced a modification to the default checksum behavior from the client that is currently incompatible with R2 APIs.
> 
> 日本語訳：
> クライアントバージョン`2.23.0`と`1.37.0`では、クライアントからのチェックサムのデフォルトの挙動に現在R2 APIと互換性のない変更が加えられました。
> 
> ——『[aws CLI · Cloudflare R2 docs](https://developers.cloudflare.com/r2/examples/aws/aws-cli/)』

このように、S3の仕様変更にR2が対応していなかったことでエラーが発生したようです。

## 対処法

この問題の対処法は、R2の前述のドキュメントに書かれていました。

@aws-sdk/client-s3を使っている場合は、バージョン`3.726.1`にダウングレードするか、`requestChecksumCalculation`オプションと`responseChecksumValidation`オプションを指定します。

```typescript
const s3 = new S3Client({
    // ...既存のコード
    requestChecksumCalculation: "WHEN_REQUIRED",
    responseChecksumValidation: "WHEN_REQUIRED"
});
```

また、AWS CLIを使っている場合は、バージョン`2.22.35`または`1.36.40`にダウングレードするか、`--checksum-algorithm CRC32`フラグを指定します。