Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

エラーコード

最終更新 Markdown で表示Agent セットアップ

このページでは、Workers API または S3 互換 API を使うときに R2 が返すエラーコードと、トラブルシューティング向けの対処方法をまとめます。

エラーの返り方

Workers API では、R2 の操作は catch できる例外を投げます。エラーコードは message プロパティの末尾に含まれます。

try {
  await env.MY_BUCKET.put("my-key", data, { customMetadata: largeMetadata });
} catch (error) {
  console.error(error.message);
  // "put: Your metadata headers exceed the maximum allowed metadata size. (10012)"
}

S3 互換 API では、エラーはレスポンス本文の XML として返ります。

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
</Error>

エラーコード一覧

認証と認可のエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10002 Unauthorized 401 認証情報が欠けているか、無効です。 API トークン またはアクセスキーが正しく、期限切れでないことを確認します。
10003 AccessDenied 403 要求した操作に対する権限が不足しています。 API トークン に、対象バケットと操作に必要な権限があることを確認します。
10018 ExpiredRequest 403 署名付き URL またはリクエスト署名の有効期限が切れています。 署名付き URL または署名を再生成します。
10035 SignatureDoesNotMatch 403 リクエスト署名が計算した署名と一致しません。 シークレットキーと署名アルゴリズムを確認します。URL エンコードの問題も確認します。
10042 NotEntitled 403 この機能をアカウントで利用できません。 アカウントに R2 のサブスクリプション があることを確認します。

バケットのエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10005 InvalidBucketName 400 バケット名が命名要件を満たしていません。 バケット名は 3〜63 文字、小文字の英数字とハイフンのみ、先頭と末尾は英数字にしてください。
10006 NoSuchBucket 404 指定したバケットが存在しません。 バケット名が正しく、アカウント内にバケットがあることを確認します。
10008 BucketNotEmpty 409 オブジェクトが残っているバケットは削除できません。 バケットを削除する前に、中のオブジェクトをすべて削除します。
10009 TooManyBuckets 400 アカウントのバケット上限を超えています(デフォルト: 1,000,000 バケット)。 Limits Increase Request Form から上限の引き上げを申請します。
10073 BucketConflict 409 そのバケット名はすでに存在します。 別のバケット名を選びます。バケット名はアカウント内で一意である必要があります。

オブジェクトのエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10007 NoSuchKey 404 指定したオブジェクトキーが存在しません。Workers API では、get()head() は例外を投げずに null を返します。 オブジェクトキーが正しく、オブジェクトが削除されていないことを確認します。
10020 InvalidObjectName 400 オブジェクトキーに無効な文字が含まれるか、長すぎます。 有効な UTF-8 文字を使います。キーの最大長は 1024 バイトです。
100100 EntityTooLarge 400 オブジェクトが最大サイズを超えています(単一アップロードは 5 GiB、マルチパートは 5 TiB)。 5 GiB より大きいオブジェクトは マルチパートアップロード を使います。オブジェクトの最大サイズは 5 TiB です。
10012 MetadataTooLarge 400 カスタムメタデータが 8,192 バイトの上限を超えています。 カスタムメタデータのサイズを減らします。すべてのカスタムメタデータの合計上限は 8,192 バイトです。
10069 ObjectLockedByBucketPolicy 403 オブジェクトはバケットロックルールで保護されており、変更や削除はできません。 保持期間が終わるまで待ちます。バケットロック を参照してください。

アップロードとリクエストのエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10033 MissingContentLength 411 Content-Length ヘッダーが必要ですが、ありません。 PUT/POST リクエストに Content-Length ヘッダーを含めます。
10013 IncompleteBody 400 期待した Content-Length より前にリクエスト本文が終了しました。 リクエスト本文をすべて送信します。ネットワーク切断やクライアントのタイムアウトも確認します。
10014 InvalidDigest 400 チェックサムヘッダーの形式が不正です。 チェックサムが正しくエンコードされていることを確認します(SHA/CRC チェックサムは base64)。
10037 BadDigest 400 指定したチェックサムがアップロードした内容と一致しません。 データの整合性を確認し、アップロードを再試行します。
10039 InvalidRange 416 要求したバイト範囲を満たせません。 範囲の開始がオブジェクトサイズ未満であることを確認します。Range ヘッダーの形式も確認します。
10031 PreconditionFailed 412 条件付きヘッダー(If-MatchIf-Unmodified-Since など)が満たされませんでした。 オブジェクトの ETag または更新時刻が条件と一致しません。再取得してから再試行します。条件付き操作 を参照してください。

マルチパートアップロードのエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10011 EntityTooSmall 400 マルチパートのパートが最小サイズ(5 MiB)未満です。最後のパートは例外です。 最後のパート以外は、各パートを 5 MiB 以上にします。
10024 NoSuchUpload 404 マルチパートアップロードが存在しないか、中止されています。 uploadId が正しいことを確認します。未完了のマルチパートアップロードは、デフォルトで 7 日後に期限切れになります。オブジェクトライフサイクル を参照してください。
10025 InvalidPart 400 アップロード完了時に、1 つ以上のパートが見つかりませんでした。 各パートが正常にアップロードされ、UploadPart が返した ETag をそのまま使っていることを確認します。
10048 InvalidPart 400 末尾以外のパートは、すべて同じサイズである必要があります。 最後以外のパートは同じサイズにします。R2 のマルチパートアップロードでは、パートサイズを揃える必要があります。

サービスのエラー

エラーコード S3 コード HTTP ステータス 詳細 対処方法
10001 InternalError 500 内部エラーが発生しました。 リクエストを再試行します。続く場合は Cloudflare Status を確認するか、サポートに連絡します。
10043 ServiceUnavailable 503 サービスが一時的に利用できません。 指数バックオフで再試行します。Cloudflare Status を確認します。
10054 ClientDisconnect 400 リクエスト完了前にクライアントが切断しました。 ネットワーク接続を確認して再試行します。
10058 TooManyRequests 429 レート制限を超えました。同じオブジェクトキーへの同時リクエストが原因になることが多くあります(上限: キーあたり 1 書き込み/秒)。 複数のクライアントが同じオブジェクトキーにアクセスしていないか確認します。R2 の制限 を参照してください。

役に立ちましたか?