このトピックでは、Tablestore から返される代表的なエラーを、権限検証、HTTP メッセージ、API 操作、サーバーエラーのカテゴリ別に一覧化します。エラーの特定および解決には、エラーコード、HTTP ステータスコード、およびエラーメッセージを活用してください。
リトライ 列は、そのリクエストを再試行することでエラーが解消可能かどうかを示します。「はい」は一時的なエラーであり、指数バックオフによる再試行で成功する可能性があることを意味します。「いいえ」は、再試行前に根本原因を修正する必要があることを意味します。
このリファレンスの活用方法
アプリケーションが Tablestore からエラーを受信した場合:
以下の表から、OTS プレフィックス付きのエラーコードを特定します。
HTTP ステータスコードを確認し、エラーのカテゴリを特定します。
原因および解決方法について、説明欄をご参照ください。
リトライ 列を確認し、アプリケーション側でリクエストを再試行すべきかどうかを判断します。
本ドキュメントで使用する主な略語は以下のとおりです:
容量単位 (CU):Tablestore における読み取りおよび書き込みスループットの計測単位。
有効期限 (TTL):データが自動的に失効するまでの期間。
権限検証エラー
すべての権限検証エラーは HTTP ステータスコード 403 を返し、再試行できません。再試行前に、認証情報、権限、またはネットワーク構成を修正してください。
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 403 | OTSAuthFailed | AccessKeyID が存在しません。 | 指定された AccessKey ID が存在しません。AccessKey ID が正しいかご確認ください。 | いいえ |
| 403 | OTSAuthFailed | AccessKeyID が無効化されています。 | 指定された AccessKey ID が無効化されています。Alibaba Cloud コンソールで有効化するか、別の AccessKey ID を使用してください。 | いいえ |
| 403 | OTSAuthFailed | ユーザーが存在しません。 | 指定されたユーザーが存在しません。RAM ユーザーのアカウントが有効であるかご確認ください。 | いいえ |
| 403 | OTSAuthFailed | インスタンスが見つかりません。 | 指定されたインスタンスが存在しません。インスタンス名およびリージョンをご確認ください。 | いいえ |
| 403 | OTSAuthFailed | ユーザーにはインスタンスへのアクセス権限がありません。 | インスタンスへのアクセス権限がありません。必要な権限を RAM ユーザーに付与してください。 | いいえ |
| 403 | OTSAuthFailed | インスタンスが実行中ではありません。 | インスタンスのステータスが「実行中」ではありません。Tablestore コンソールでインスタンスのステータスをご確認ください。 | いいえ |
| 403 | OTSAuthFailed | 署名が一致しません。 | リクエストの署名が提供された署名と一致しません。AccessKey シークレットおよび署名アルゴリズムをご確認ください。 | いいえ |
| 403 | OTSAuthFailed | システム時刻と x-ots-date の不一致:{Date}。 | サーバー時刻と x-ots-date パラメーターで指定された時刻の差が許容範囲を超えています。システムクロックを同期してください。 | いいえ |
| 403 | OTSAuthFailed | インスタンス ACL ポリシーによりリクエストが拒否されました。 | クライアントのネットワークタイプがインスタンスによって許可されていないため、リクエストが拒否されました。「Tablestore SDK を使用して Tablestore にアクセスした際に発生する『インスタンス ACL ポリシーによりリクエストが拒否されました』例外」について詳しくは、関連ドキュメントをご参照ください。 | いいえ |
| 403 | OTSNoPermissionAccess | 要求されたリソースにアクセスする権限がありません。リソース所有者にお問い合わせください。 | リソースを管理する権限がありません。権限付与については、リソース所有者にお問い合わせください。詳細については、「RAM ポリシーを使用した RAM ユーザーへの権限付与」をご参照ください。 | いいえ |
HTTP メッセージエラー
これらのエラーは、無効なヘッダー、サポートされていないメソッド、リクエストサイズ制限など、HTTP リクエスト自体に起因する問題を示します。すべての HTTP メッセージエラーは再試行できません。
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 413 | OTSRequestBodyTooLarge | POST データのサイズが大きすぎます。 | POST リクエストボディがサイズ制限を超えています。リクエストボディのサイズを縮小してください。 | いいえ |
| 408 | OTSRequestTimeout | リクエストタイムアウト。 | クライアント側でリクエストがタイムアウトしました。ネットワーク接続を確認し、必要に応じてタイムアウト設定を延長してください。 | いいえ |
| 405 | OTSMethodNotAllowed | OTSMethodNotAllowed:リクエストには POST メソッドのみがサポートされます。 | リクエストメソッドはサポートされていません。POST リクエストのみがサポートされます。 | いいえ |
| 403 | OTSAuthFailed | リクエストボディの MD5 値とヘッダー内の x-ots-contentmd5 の値が一致しません。 | リクエストボディから計算された MD5 値と、リクエストヘッダーで指定された x-ots-contentmd5 の値が異なります。MD5 ハッシュを再計算してください。 | いいえ |
| 400 | OTSParameterInvalid | 必須ヘッダーが不足しています:{HeaderName}。 | 必須ヘッダーが不足しています。指定されたヘッダーをリクエストに追加してください。 | いいえ |
| 400 | OTSParameterInvalid | 無効な日付形式:{Date}。 | 日付形式が無効です。有効な日付形式をご使用ください。 | いいえ |
| 400 | OTSParameterInvalid | サポートされていない操作:{Operation}。 | リクエスト URL 内の操作名が無効です。操作名をご確認ください。 | いいえ |
| 400 | OTSParameterInvalid | 容量インスタンスでは読み取り CU を予約できません。 | 容量インスタンスのテーブルでは、予約済みの読み取りまたは書き込みスループットを指定できません。 | いいえ |
| 400 | OTSForbiddenUpdateCapacityUnit | インスタンスでは容量単位の更新が禁止されています。 | 容量インスタンスのテーブルでは、予約済みの読み取りまたは書き込みスループットを更新できません。 | いいえ |
API 操作エラー
これらのエラーは、Tablestore の API 操作中に発生します。ほとんどのエラーは無効なパラメーター(HTTP 400)が原因であり、再試行できません。エラーメッセージに基づいてリクエストパラメーターを修正してください。
HTTP 500 エラー
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 500 | OTSInternalServerError | 内部サーバーエラー。 | 内部エラーが発生しました。複数回の再試行後もエラーが継続する場合は、チケットを送信してください。 | はい |
HTTP 403 エラー
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 403 | OTSQuotaExhausted | テーブル操作が頻繁すぎます。 | テーブル操作の頻度がしきい値を超えています。しばらく待ってから再試行してください。 | はい |
| 403 | OTSQuotaExhausted | テーブル数がクォータを超えました。 | 最大テーブル数に達しています。不要なテーブルを削除するか、クォータ増加を申請してください。 | いいえ |
HTTP 400 エラー:テーブルおよび列の検証
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | 無効なインスタンス名:{InstanceName}。 | 指定されたインスタンス名が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効なテーブル名:{TableName}。 | 指定されたテーブル名が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な列名:{ColumnName}。 | 指定された列名が無効です。 | いいえ |
| 400 | OTSParameterInvalid | {ColumnType} はプライマリキーとして無効な型です。 | プライマリキー列の型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | {ColumnType} は属性列として無効な型です。 | 属性列の型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー列の数は範囲内である必要があります:[1, {Limit}]。 | プライマリキー列の数が 0 または上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 列 {ColumnName} の値は UTF-8 エンコーディングである必要があります。 | 列の値が UTF-8 でエンコードされていません。 | いいえ |
| 400 | OTSParameterInvalid | 属性列:{ColumnName} の長さが最大長:{MaxSize}(現在の長さ:{CellSize}) を超過しました。 | 属性列名が最大長を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 重複するプライマリキー名:'{PKName}'。 | 重複するプライマリキーが存在します。 | いいえ |
| 400 | OTSParameterInvalid | 属性列名とプライマリキー列名が重複しています:{ColumnName}。 | 属性列名が行内のプライマリキー列名と同じです。 | いいえ |
| 400 | OTSParameterInvalid | 属性列の数が上限を超えました。上限数:{Limit}、列数:{Count}。 | 属性列の数が上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー列:{ColumnName} の長さが最大長:{Limit}(現在の長さ:{Current})を超過しました。 | プライマリキーの長さが最大値を超えています。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキーに名前が指定されていません。 | プライマリキー列に名前が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー名:{PkName} に値が指定されていません。 | プライマリキー列に値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー名:{PkName} に OpType を指定できません。 | プライマリキーに操作タイプが指定されています。プライマリキーには操作タイプを指定できません。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー名:{PkName} にタイムスタンプを指定できません。 | プライマリキーにタイムスタンプが指定されています。プライマリキーにはタイムスタンプを指定できません。 | いいえ |
| 400 | OTSParameterInvalid | 重複するプライマリキー名:{PkName}。 | 重複するプライマリキーが存在します。 | いいえ |
| 400 | OTSParameterInvalid | 属性列に名前が指定されていません。 | 属性列名が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 列名に値が指定されていません。 | 属性列の値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 属性列が不足しています。 | 属性列が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な列名:空の名前。 | 属性列名が空です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な列型:STRING、INTEGER、BINARY のみが許可されています。 | 列型が無効です。プライマリキー列では STRING、INTEGER、BINARY のみがサポートされます。 | いいえ |
| 400 | OTSParameterInvalid | 無効な列型:{ColumnType}。 | 列型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | Double 型はプライマリキーとして使用できません。 | Double 型はプライマリキーとして使用できません。 | いいえ |
| 400 | OTSParameterInvalid | 列が存在しません:{ColumnName}。 | 指定された列が存在しません。 | いいえ |
| 400 | OTSParameterInvalid | リクエスト内の列数が上限を超えました。上限数:{Limit}、列数:{current}。 | リクエスト内の列数が上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 定義済み列の数は範囲 [0, 32] 内である必要があります。 | 事前定義列の数が 32 を超えています。 | いいえ |
| 400 | OTSParameterInvalid | テーブル:{TableName} の各行でプライマリキー列のサイズが異なります。 | 異なる行でプライマリキー列の数が異なります。 | いいえ |
| 400 | OTSInvalidPK | プライマリキーのスキーマが一致しません。 | 指定されたプライマリキーがデータテーブルのプライマリキーと一致しません。 | いいえ |
| 400 | OTSOutOfRowSizeLimit | 1 行内の列の合計データサイズが上限を超えました。 | 行内のすべての列の合計データサイズが上限を超えています。 | いいえ |
| 400 | OTSOutOfColumnCountLimit | 1 行内の列数が上限を超えました。 | 行内の列数が上限を超えています。 | いいえ |
HTTP 400 エラー:自動採番プライマリキー
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | 自動採番プライマリキーは INTEGER 型である必要があります。 | 自動採番プライマリキー列には INTEGER 型の列のみを指定できます。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーの数は 1 以下である必要があります。 | 自動採番プライマリキー列は 1 つのみ指定できます。 | いいえ |
| 400 | OTSParameterInvalid | 最初のプライマリキーは自動採番できません。テーブル:{TableName}。 | 最初のプライマリキー列は自動採番プライマリキー列にできません。 | いいえ |
| 400 | OTSParameterInvalid | PkAutoIncr を最初のプライマリキー列として設定できません。 | 自動採番プライマリキー列は最初のプライマリキー列にできません。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーの数は 1 を超えてはいけません。 | 自動採番プライマリキー列は 1 つのみ指定できます。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーは INTEGER 型である必要があります。名前:{PkName}。 | 自動採番プライマリキー列が INTEGER 型ではありません。 | いいえ |
| 400 | OTSParameterInvalid | {Count} 個の自動採番プライマリキーが行に存在します。 | 自動採番プライマリキー列が 2 つ以上存在します。 | いいえ |
| 400 | OTSParameterInvalid | PkAutoIncr は読み取り操作には使用できません。 | 読み取り操作では自動採番プライマリキー列属性を指定できません。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーを含む行の削除は無効です。 | 削除操作では自動採番プライマリキー列属性を指定できません。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーを含む行の変更時に無効な期待値:{RowExpect}。 | 自動採番プライマリキー列を持つ行の存在条件が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーを含む行の変更時に条件を設定できません。 | 自動採番プライマリキー列を持つ行では条件付き更新を設定できません。 | いいえ |
| 400 | OTSParameterInvalid | 自動採番プライマリキーを含むテーブルの特定行を変更する際の無効な期待値:{RowExpect}。 | 自動採番プライマリキー列を持つテーブルで変更対象となる行の存在条件が無効です。 | いいえ |
HTTP 400 エラー:行操作(PutRow、UpdateRow、DeleteRow)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | PutRow で列名:{ColumnName} に OpType を指定できません。 | PutRow で操作タイプが指定されています。操作タイプは UpdateRow のみで指定できます。 | いいえ |
| 400 | OTSParameterInvalid | DELETE_ONE_VERSION、DELETE_ALL_VERSION の場合、列値を指定できません。 | DELETE_ONE_VERSION や DELETE_ALL_VERSION などの削除操作では、属性列の値を指定できません。 | いいえ |
| 400 | OTSParameterInvalid | DELETE_ONE_VERSION の場合、タイムスタンプを指定する必要があります。 | バージョン番号が指定されていません。バージョンを削除するには、バージョン番号を指定してください。 | いいえ |
| 400 | OTSParameterInvalid | DELETE_ALL_VERSION の場合、タイムスタンプを指定できません。 | バージョン番号が指定されています。すべてのバージョンを削除するには、バージョン番号を指定しないでください。 | いいえ |
| 400 | OTSParameterInvalid | 無効なセル:{Cell}。タイムスタンプが不足しています。 | タイムスタンプが指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効なセルタイムスタンプ:{Timestamp}。期待値:[0, Version::kMax.mVersion / kUsecPerMsec].. | 指定されたタイムスタンプが無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効なタイムスタンプ。セル:{CellName}。 | データは、ミリ秒単位で指定されたタイムスタンプを 1000 で割った値が有効なバージョン範囲内にある場合にのみ書き込まれます。有効なバージョン範囲は、次の式で算出されます:有効なバージョン範囲 = [max{データ書き込み時刻 - 最大バージョンオフセット, データ書き込み時刻 - TTL 値}, データ書き込み時刻 + 最大バージョンオフセット) | いいえ |
| 400 | OTSParameterInvalid | セル:{Timestamp} のタイムスタンプが無効です。タイムスタンプは DELETE_ALL_VERSION には適用されません。 | DELETE_ALL_VERSION を使用してすべてのバージョンを削除する際に、バージョンが指定されています。DELETE_ALL_VERSION ではバージョンを指定しないでください。 | いいえ |
| 400 | OTSParameterInvalid | 無効なセル操作タイプ:{OpType}。 | 操作タイプが無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効なセル:{Cell}。理由:値が不足しています。 | セルの値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な行削除リクエスト:リクエストに RowDeleteMarker が含まれていません。 | 行削除リクエストに RowDeleteMarker が含まれていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な Put/Update 行リクエスト:リクエストに予期しない RowDeleteMarker が含まれています。 | PutRow または UpdateRow に RowDeleteMarker が含まれています。PutRow または UpdateRow には RowDeleteMarker を含めないでください。 | いいえ |
| 400 | OTSParameterInvalid | 無効な UpdateRow リクエスト:リクエストにセルが含まれていません。 | UpdateRow に属性列の値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な DeleteRow リクエスト:リクエストに予期しないセルが含まれています。 | DeleteRow に属性列の値が指定されています。DeleteRow には属性列の値を指定しないでください。 | いいえ |
| 400 | OTSParameterInvalid | 無効な PutRow リクエスト:値のないセルが検出されました。 | PutRow に属性列の値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な操作:{Action}。 | 操作タイプが無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な行存在期待値:{Expectation}。 | 行存在条件が無効です。 | いいえ |
| 400 | OTSParameterInvalid | データ読み取り時には属性列を指定できません。 | 読み取り操作では属性列の値を指定しないでください。 | いいえ |
| 400 | OTSParameterInvalid | DeleteMarker を指定できません。 | この操作では DeleteMarker パラメーターがサポートされていません。DeleteMarker は削除操作でのみサポートされます。 | いいえ |
HTTP 400 エラー:バッチ操作(BatchGetRow、BatchWriteRow)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | BatchGetRow のリクエストに行が指定されていません。 | BatchGetRow 操作に指定された行がありません。 | いいえ |
| 400 | OTSParameterInvalid | 重複するテーブル名:{TableName}。 | BatchGetRow または BatchWriteRow 操作で同じ名前のテーブルが指定されています。 | いいえ |
| 400 | OTSParameterInvalid | 行数が上限を超えました:{limit}。 | 行数がテーブルの書き込み上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | BatchWriteRow に行が指定されていません。 | BatchWriteRow 操作に指定された行がありません。少なくとも 1 行を指定してください。 | いいえ |
| 400 | OTSParameterInvalid | テーブル:{TableName} に操作が指定されていません。 | BatchWriteRow 操作でテーブルに対する操作が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | バッチ書き込み操作の行の型が無効です。 | BatchWriteRow 操作の行の型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 変更タイプが無効です。 | BatchWriteRow 操作の操作タイプが無効です。PUT、UPDATE、DELETE のみがサポートされます。 | いいえ |
| 400 | OTSParameterInvalid | BatchWriteRow リクエストの合計データサイズが上限を超えました。上限サイズ:{LimitSize}、データサイズ:{UserSize}。 | BatchWriteRow リクエストのデータサイズが上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | PutRow リクエストの合計データサイズが上限を超えました。上限サイズ:{Limit}、データサイズ:{Current}。 | PutRow リクエストのデータサイズが上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | UpdateRow リクエストの合計データサイズが上限を超えました。上限サイズ:{Limit}、データサイズ:{Current}。 | UpdateRow リクエストのデータサイズが上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 重複行では BatchModify の行存在期待値チェックはサポートされていません。 | BatchWriteRow では重複行に対する行存在チェックは許可されていません。 | いいえ |
| 400 | OTSParameterInvalid | 重複行では BatchModify の行条件チェックはサポートされていません。 | BatchWriteRow では重複行に対する条件付き更新は許可されていません。 | いいえ |
| 400 | OTSParameterInvalid | MultiPut で重複行が検出されました。 | MultiPut で重複行が検出されました。 | いいえ |
| 400 | OTSParameterInvalid | MultiGet で重複行が検出されました。 | MultiGet で重複行が検出されました。 | いいえ |
HTTP 400 エラー:範囲クエリ(GetRange)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | limit は 0 より大きくなければなりません。 | limit 値が 0 以下です。limit を 0 より大きい値に設定してください。 | いいえ |
| 400 | OTSParameterInvalid | 開始時刻と終了時刻は同時に指定する必要があります。 | GetRange 操作では、StartTime と EndTime を同時に指定してください。 | いいえ |
| 400 | OTSParameterInvalid | FORWARD の場合、開始キーは終了キーより小さくなければなりません。 | 前方クエリでは、開始キーが終了キーより小さくなければなりません。 | いいえ |
| 400 | OTSParameterInvalid | BACKWARD の場合、開始キーは終了キーより大きくななければなりません。 | 後方クエリでは、開始キーが終了キーより大きくなればなりません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な最大スキャンサイズ:{Limit}。 | 範囲クエリの limit 値がしきい値を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 無効な範囲:開始タイプと終了タイプが異なります。{BeginType}:{EndType}。 | 範囲クエリの開始キーの型と終了キーの型が異なります。 | いいえ |
HTTP 400 エラー:バージョンおよび TTL
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | テーブル作成時に TTL が指定されていません。 | テーブル作成時に TTL が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | テーブル作成時に maxVersions が指定されていません。 | テーブル作成時に max versions パラメーターの値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | TimeToLive は 0 または -1 より小さい値にすることはできません。 | TTL は 0 または -1 より小さい値にできません。TTL には -1 を設定できます。 | いいえ |
| 400 | OTSParameterInvalid | 最大バージョン数は 0 以下にすることはできません。 | max versions の値は 0 より大きくなければなりません。 | いいえ |
| 400 | OTSParameterInvalid | タイムスタンプは範囲 [0, INT64_MAX/1000) 内である必要があります。 | タイムスタンプは 0 以上かつ INT64_MAX/1000 未満である必要があります。 | いいえ |
| 400 | OTSParameterInvalid | 特定のタイムスタンプは 0 より小さくできません。 | 指定されたタイムスタンプが 0 より小さいです。 | いいえ |
| 400 | OTSParameterInvalid | 最大偏差は範囲 [0, INT64_MAX/1000000] 内である必要があります。 | max version offset の値が範囲外です。 | いいえ |
| 400 | OTSParameterInvalid | 行クエリ時にバージョン条件が指定されていません。 | クエリにバージョン条件が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 特定のタイムスタンプと max versions を同時に指定できません。 | タイムスタンプと max versions パラメーターを同時に指定できません。 | いいえ |
| 400 | OTSParameterInvalid | 特定のタイムスタンプとタイムスタンプ範囲を同時に指定できません。 | タイムスタンプとタイムスタンプ範囲を同時に指定できません。 | いいえ |
| 400 | OTSParameterInvalid | 特定のタイムスタンプ、タイムスタンプ範囲、および max versions を同時に指定できません。 | タイムスタンプ、タイムスタンプ範囲、および max versions パラメーターを同時に指定できません。いずれか 1 つだけを指定してください。 | いいえ |
| 400 | OTSParameterInvalid | 無効な max versions:{Version}。理由:max versions は正の値である必要があります。 | max versions の値が無効です。値は 0 より大きく、または -1 である必要があります。 | いいえ |
| 400 | OTSParameterInvalid | 属性列名とプライマリキー列名が重複しています:{PkName}。 | 属性列名がプライマリキー列名と同じです。 | いいえ |
HTTP 400 エラー:容量単位
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | 読み取り容量単位の値は {Limit} より小さくできません。 | 読み取り CU の値が下限より小さいです。 | いいえ |
| 400 | OTSParameterInvalid | 書き込み容量単位の値は {Limit} より小さくできません。 | 書き込み CU の値が下限より小さいです。 | いいえ |
| 400 | OTSParameterInvalid | UpdateTable の無効な容量単位:読み取り ({CU}) または書き込み ({CU}) のいずれかが非負である必要があります。 | 読み取りまたは書き込み CU の数値が 0 より小さいです。両方の値は 0 以上である必要があります。 | いいえ |
| 400 | OTSParameterInvalid | 無効な容量単位:{CU}。容量単位は非負である必要があります。 | CU の値が 0 より小さいです。値は 0 以上である必要があります。 | いいえ |
| 400 | OTSParameterInvalid | ハイブリッドストレージクラスターで読み取り容量単位を予約できません:{TableName}。 | 容量インスタンスでは予約済みの読み取り CU を指定できません。 | いいえ |
| 400 | OTSParameterInvalid | ハイブリッドストレージクラスターで書き込み容量単位を予約できません:{TableName}。 | 容量インスタンスでは予約済みの書き込み CU を指定できません。 | いいえ |
| 400 | OTSParameterInvalid | テーブルオプションにパラメーターが指定されていません。 | TableOption にパラメーターが指定されていません。 | いいえ |
HTTP 400 エラー:フィルター
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | フィルターの逆シリアル化に失敗しました。 | フィルターの逆シリアル化に失敗しました。SDK でカプセル化されたフィルター形式が無効です。 | いいえ |
| 400 | OTSParameterInvalid | ColumnPaginationFilter の offset は 0 以上である必要があります。 | ColumnPaginationFilter の offset 値が 0 未満です。offset を 0 以上に設定してください。 | いいえ |
| 400 | OTSParameterInvalid | ColumnPaginationFilter の limit は 0 より大きくなければなりません。 | ColumnPaginationFilter の limit 値が 0 未満です。limit を 0 以上に設定してください。 | いいえ |
| 400 | OTSParameterInvalid | リレーションフィルターのデシリアル化に失敗しました。 | 単一列フィルターの逆シリアル化に失敗しました。SDK のフィルター形式が無効である可能性があります。 | いいえ |
| 400 | OTSParameterInvalid | 結合フィルターの逆シリアル化に失敗しました。 | 結合フィルターの逆シリアル化に失敗しました。SDK のフィルター形式が無効である可能性があります。 | いいえ |
| 400 | OTSParameterInvalid | カラムページネーションフィルターのデシリアル化に失敗しました。 | ワイド行フィルターの逆シリアル化に失敗しました。SDK のフィルター形式が無効である可能性があります。 | いいえ |
| 400 | OTSParameterInvalid | フィルターの数が上限を超えました:{Limit}。 | フィルターの数が上限を超えています。 | いいえ |
| 400 | OTSParameterInvalid | 無効なフィルター offset:{Filter}。理由:offset は非負である必要があります。 | フィルターの offset 値が 0 未満です。offset を 0 以上に設定してください。 | いいえ |
| 400 | OTSParameterInvalid | 無効な関係演算子:{Operation}。 | 関係演算子が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効なフィルター型:{Type}。 | フィルター型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な NOT 演算子:サブフィルターの数は 1 である必要があります。 | NOT 演算子は 1 つのみのサブフィルターをサポートします。 | いいえ |
| 400 | OTSParameterInvalid | 無効な AND/OR 演算子:サブフィルターの数は 2 である必要があります。 | AND および OR 演算子では、正確に 2 つのサブフィルターが必要です。 | いいえ |
| 400 | OTSParameterInvalid | 無効なサブフィルター型:{Filter}。 | サブフィルター型が無効です。 | いいえ |
HTTP 400 エラー:戻り値の型および条件
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | 無効な戻り値の型:{ReturnType}。 | 戻り値の型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な条件:{Condition}。 | 指定された条件が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な ModifyType:{ModifyType}。 | 更新タイプが無効です。 | いいえ |
HTTP 400 エラー:PlainBuffer エンコーディング
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | 入力されたエンコード済み PK が破損しています。無効なセルキー型:xx。 | PlainBuffer 形式でエンコードされたプライマリキーが無効です。セルの型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | 入力されたエンコード済み PK が破損しています。長さが期待値より短いです。 | PlainBuffer 形式でエンコードされたプライマリキーが無効です。プライマリキーの長さが期待値より短いです。 | いいえ |
| 400 | OTSParameterInvalid | データ形式が無効です。 | PlainBuffer 形式でエンコードされた行データが無効です。 | いいえ |
| 400 | OTSParameterInvalid | データ形式が無効です。不明なバリエント型が発生しました。 | PlainBuffer 形式でエンコードされた行データが無効です。値の型が無効です。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。ヘッダーが一致しません。実際:{Header}、期待:{Header}。 | PlainBuffer 形式でエンコードされた行データがヘッダーの不一致により無効です。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。PK 値は NULL にできません。名前:{PkName}。 | PlainBuffer 形式でエンコードされた行データが無効です。PkName のプライマリキー値が空です。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。PK が空です。 | PlainBuffer 形式でエンコードされた行データが無効です。プライマリキーが指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。PKTag の後に PK がありません。 | PlainBuffer 形式でエンコードされた行データが無効です。プライマリキーがプライマリキータグに続いていません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。属性に名前がありません。 | PlainBuffer 形式でエンコードされた行データが無効です。属性列名が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。属性に値がありません。名前:{Name}。 | PlainBuffer 形式でエンコードされた行データが無効です。属性列の値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。CellTag の後に Cells がありません。 | PlainBuffer 形式でエンコードされた行データが無効です。セルの内容がセルタグに続いていません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。Cell に有効な要素がありません。名前:{Name}。 | PlainBuffer 形式でエンコードされた行データが異なるセルフォーマットにより無効です。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。セルが CheckSum[{0x0A}] タグで終了していません。 | PlainBuffer 形式でエンコードされた行データが無効です。エンコード後のセルが CheckSumFlag で終了していません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。行がチェックサムタグで終了していません。 | PlainBuffer 形式でエンコードされた行データが無効です。エンコード後の行データが CheckSumTag で終了していません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。タグが一致しません。実際のタグ({TAG})、期待({TAG})。 | PlainBuffer 形式でエンコードされた行データが無効です。指定されたタグが存在しません。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。文字列フォーマットが誤っています。サイズ:{Size}。 | PlainBuffer 形式でエンコードされた行データが無効です。文字列エンコード形式が無効です。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。チェックサムが一致しません。{UserChecksum} :{ServiceChecksum} : | PlainBuffer 形式でエンコードされた行データが無効です。UserChecksum の値がサーバーで計算された ServiceChecksum の値と異なります。 | いいえ |
| 400 | OTSParameterInvalid | セルデータが破損しています。セルに余分なデータがありますが、解析できません。 | PlainBuffer 形式でエンコードされた列データが余分なデータにより無効です。 | いいえ |
| 400 | OTSParameterInvalid | 無効な行:チェックサムが不足しています。 | PlainBuffer 形式でエンコードされた行データが無効です。行のチェックサム値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | 無効な列 ({ColumnName}):チェックサムが不足しています。 | PlainBuffer 形式でエンコードされた列データが無効です。セルのチェックサム値が指定されていません。 | いいえ |
| 400 | OTSParameterInvalid | RawString からの PBMessage の解析に失敗しました。 | Protobuf の逆シリアル化に失敗しました。SDK のシリアル化コードが無効である可能性があります。 | いいえ |
| 400 | OTSParameterInvalid | リクエストデータの逆シリアル化ができません。 | 空の値または無効な形式により、リクエストデータの逆シリアル化に失敗しました。 | いいえ |
| 400 | OTSParameterInvalid | プライマリキー内の不明またはサポートされていない CellType:{PkName}。 | プライマリキーのセル型が認識できません。 | いいえ |
| 400 | OTSParameterInvalid | 無効なブール値の実際の値、値の長さ:{Length}。 | PlainBuffer 形式でエンコードされた列データが無効です。ブール値の長さが無効です。 | いいえ |
| 400 | OTSParameterInvalid | NaN を Double 値に設定できません。 | Double 型列の値が NaN に設定されています。 | いいえ |
| 400 | OTSParameterInvalid | Infinity を Double 値に設定できません。 | Double 型列の値が Infinity に設定されています。 | いいえ |
HTTP 400 エラー:検索インデックスおよび高度な機能
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSParameterInvalid | インデックステーブルに直接書き込むことはできません。 | インデックステーブルに対して書き込み操作を実行できません。 | いいえ |
| 400 | OTSParameterInvalid | 明示的なトランザクションが無効化されたテーブルで明示的なトランザクションを使用したメソッドを呼び出そうとしています。 | テーブルでローカルトランザクションが無効化されています。 | いいえ |
| 400 | OTSParameterInvalid | 検索インデックスを 1 つ以上持つテーブル [tablename] は削除できません。 | 検索インデックスを持つテーブルは削除できません。まず検索インデックスを削除してください。 | いいえ |
| 400 | OTSParameterInvalid | ネストされたフィールドの集約/GroupBy は再帰的であってはなりません。 | ネストされたフィールドでは、再帰的な GroupBy または集約は使用できません。 | いいえ |
| 400 | OTSParameterInvalid | インデックスのクエリに失敗しました。クエリフィールドで「Index」が有効になっているか確認してください。 | クエリフィールドでインデックスが無効になっています。フィールドのインデックスを有効にしてください。 | いいえ |
| 400 | OTSParameterInvalid | [テーブル TTL] は検索インデックス TTL より大きいか等しくなければなりませんが、テーブル TTL は xxxx、検索インデックス TTL は [{IndexName}:xxxx] です。 | データテーブルの TTL が検索インデックスの TTL より小さいです。データテーブルの TTL は検索インデックスの TTL 以上である必要があります。 | いいえ |
| 400 | OTSParameterInvalid | 作成中のインデックス数がインスタンスのクォータを超えました。上限:10 | 作成中の検索インデックス数と動的スキーマ変更中のインデックス数の合計は 10 を超えることはできません。同期が完了するまで待ってから再試行してください。 | いいえ |
| 400 | OTSParameterInvalid | SQL バインディングを使用している分析ストアは削除できません。 | マッピングテーブルで使用されている分析ストアは削除できません。まずマッピングテーブルを削除してください。 | いいえ |
HTTP 400 エラー:ストリーム
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 400 | OTSTunnelServerUnavailable | OTSTrimmedDataAccess:要求されたストリームデータは既にトリミング済みまたは存在しません。 | ストリームログが期限切れになり、長期間データがプルされていません。 | いいえ |
Tablestore サーバーエラー
これらのエラーは Tablestore サーバー側の操作から発生します。HTTP ステータスコード 503、409(OTSRowOperationConflict)、および 404(OTSTableNotReady)のエラーは一時的なものであり、指数バックオフによる再試行が可能です。
HTTP 503 エラー(一時的)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 503 | OTSServerBusy | サーバーがビジー状態です。 | 内部 Tablestore サーバーがビジー状態です。しばらく待ってから再試行してください。 | はい |
| 503 | OTSPartitionUnavailable | パーティションが利用できません。 | パーティションが読み込まれています。しばらく待ってから再試行してください。 | はい |
| 503 | OTSTimeout | 操作タイムアウト。 | 内部 Tablestore 操作がタイムアウトしました。 | はい |
| 503 | OTSServerUnavailable | サーバーが利用できません。 | 内部 Tablestore サーバーにアクセスできません。 | はい |
HTTP 409 エラー(競合)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 409 | OTSRowOperationConflict | データは他のリクエストによって変更されています。 | 同一行に対する同時書き込みリクエストにより競合が発生しました。リクエストを再試行してください。 | はい |
| 409 | OTSObjectAlreadyExist | 要求されたテーブルはすでに存在します。 | 作成しようとしているデータテーブルまたはインデックステーブルはすでに存在します。 | いいえ |
HTTP 404 エラー(見つからない)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 404 | OTSObjectNotExist | 要求されたテーブルは存在しません。 | 要求されたテーブルが存在しません。テーブル名をご確認ください。 | いいえ |
| 404 | OTSTableNotReady | テーブルが準備できていません。 | テーブルの初期化中です。数秒待ってから再試行してください。 | はい |
HTTP 403 エラー(禁止)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 403 | OTSTooFrequentReserved ThroughputAdjustment | 容量単位の調整が頻繁すぎます。 | 読み取り/書き込み CU の調整が頻繁すぎます。再度調整する前にしばらく待ってください。 | はい |
| 403 | OTSCapacityUnitExhausted | 容量単位が不足しています。 | パーティションの読み取り/書き込み CU が枯渇しています。 | いいえ |
| 403 | OTSConditionCheckFail | 条件チェックに失敗しました。 | 条件チェックに失敗しました。行存在条件または列条件をご確認ください。 | いいえ |
HTTP 429 エラー(速度制限)
| HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 | リトライ |
|---|---|---|---|---|
| 429 | OTSFlowControl | リクエストが速度制限されています。 | このエラーは実際のシナリオに基づいて分析してください。チケットを送信して、Tablestore の技術サポートにトラブルシューティングを依頼してください。 | いいえ |
一般的なエラー処理パターン
アプリケーションで Tablestore のエラーを処理する際は、以下のガイドラインに従ってください:
再試行可能なエラーには指数バックオフを実装します。 再試行可能なエラー(例:OTSServerBusy、OTSPartitionUnavailable、OTSTimeout、OTSServerUnavailable、OTSRowOperationConflict、OTSTableNotReady)の場合、指数バックオフによる再試行を行ってください。最初の遅延は短時間(例:100 ms)から始め、その後の各再試行で遅延時間を倍増させ、最大遅延時間まで増加させます。
バッチ操作の部分的失敗を処理します。 BatchGetRow および BatchWriteRow 操作は部分的に成功することがあります。HTTP 応答が 200 を返す場合でも、常に応答内の行単位のエラー情報を確認してください。
クライアントエラーとサーバーエラーを区別します。 HTTP 4xx エラー(400、403、404、405、408、413、429)はクライアント側の問題を示します。再試行前にリクエストを修正してください。HTTP 5xx エラー(500、503)はサーバー側の問題を示し、通常は一時的なものです。
デバッグ用にエラー詳細をログ記録します。 トラブルシューティングのためにチケットを送信する際に役立つよう、エラーコード、エラーメッセージ、HTTP ステータスコード、リクエスト ID をエラー ログに含めてください。チケットを送信してください。