データストアに行うリクエストは、悪い接続性または他の問題により失敗する可能性があります。エラーコードでエラーと返信メッセージを処理し、データストア機能を pcall() で包むことで、エラーコードでエラーと返信メッセージを処理し、データストア機能を包むことができます。
エラーコード参照
エラーコード | エラー名 | エラーメッセージ | ノート | |
---|---|---|---|---|
101 | KeyNameEmpty | キー名は空ではありません。 | データストア関数にキーの入力が空の文字列かどうかをチェックします。 | |
102 | KeyNameLimit | キー名が 50 文字制限を超えています。 | データストア関数にキーの入力が 50 の長さを超えているかどうかをチェックします。 | |
103 | ValueNotAllowed | X を DataStore で許可できません。 | 悪いアップデート機能は、タイプ X の値を返しました。 | |
104 | CantStoreValue | XをDataStore保存できません。 | アップデート関数は、serialize しないタイプの値 X を返しました。 | |
105 | ValueTooLarge | シリアル化された値が X 制限を超えています。 | SetAsync() または UpdateAsync() で値を設定している場合、値のシリアル長はサイズ X を超えることはできません。データのシリアル化長をチェックするには、JSONEncode() を使用します。 | |
106 | MaxValueInvalid | MaxValue は整数でなければなりません。 | 最大値を GetSortedAsync() にパスして、OrderedDataStore に対して、整数である必要があります。 | |
106 | MinValueInvalid | MinValue は整数でなければなりません。 | 最小値を GetSortedAsync() にパスして、OrderedDataStore に対して、整数である必要があります。 | |
106 | PageSizeGreater | PageSize は、事前定義された範囲内にある必要があります。 | OrderedDataStore の最小ページサイズは 1 です。 | |
106 | PageSizeLesser | PageSize は、事前定義された範囲内にある必要があります。 | OrderedDataStore の最大ページサイズは 100 です。 | |
107 | MinMaxOrderInvalid | MaxValue は MinValue より大きいか等しい必要があります。 | 最大値は、GetSortedAsync() の最小値より大きいか等しい値でなければなりません。 | |
301 | GetAsyncThrottle | GetAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | GetAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
302 | SetAsyncThrottle | SetAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | SetAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
303 | IncreAsyncThrottle | IncrementAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | IncrementAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
304 | UpdateAsyncThrottle | UpdateAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | UpdateAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
304 | TransformThrottle | UpdateAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | UpdateAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
305 | GetSortedThrottle | GetSorted リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | GetSortedAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
306 | RemoveAsyncThrottle | RemoveAsync リクエストがドロップされました。リクエストは制限されましたが、キューは満員でした。 | RemoveAsync() リクエストは最大キューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | |
401 | DataModelNoAccess | リクエストが失敗しました。DataModel は、エクスペリエンスがシャットダウンしている間、アクセスできません。 | DataModel は、エクスペリエンスがシャットダウンしているため初期化されていません。 | |
402 | LuaWebSrvsNoAccess | リクエストが失敗しました。LuaWebService は、エクスペリエンスがシャットダウンしている間、アクセスできません。 | LuaWebService は、エクスペリエンスがシャットダウンしているため初期化されていません。 | |
403 | StudioAccessToApisNotAllowed | スタジオから DataStore に書き込めないのは、API アクセスが有効になっていないためです。 | Studio でデータストアを使用するには、API アクセスが有効でなければなりません。 | |
404 | InternalError | OrderedDataStore は存在しません。 | このリクエストに関連する OrderedDataStore は見つかりませんでした。これはデータの破損の兆候かもしれません。後でもう一度試してください。 | |
501 | InternalError | データが破損している可能性があるため、応答を解析できません。 | サーバーはリクエストに対する応答を解析できませんでした。これはデータ破損の兆候かもしれません。後でもう一度試してください。 | |
502 | RequestRejected | API サービスはエラー X でリクエストを拒否しました。 | Roblox サーバーで処理中にエラー X が発生しました。後でもう一度試してください。 | |
503 | InternalError | データストアリクエストは成功しましたが、キーが見つかりませんでした。 | リクエストされたキーがデータストアに見つからなかった。これはデータの破損の兆候かもしれない。後でもう一度試してください。 | |
504 | InternalError | データストアリクエストは成功しましたが、返答は正しく形式化されていませんでした。 | サーバーはリクエストに対する応答を解析できませんでした。これはデータ破損の兆候かもしれません。後でもう一度試してください。 | |
505 | InternalError | OrderedDataStore リクエストは成功しましたが、応答は正しく形式化されていませんでした。 | サーバーは、OrderedDataStore リクエストに対する応答を解析できませんでした。これはデータ破損の兆候かもしれません。後でもう一度試してください。 | |
509 | OperationNotAllowed | 個人 RCC で実行中にデータストア操作がブロックされるため、データの破損を防ぐことができます。 | データストアの書き込みは、プライベート RCC チャネルでブロックされます。 | |
511 | AttributeSizeTooLarge | メタデータ属性サイズが X 制限を超えています。 | シリアル化されたメタデータサイズは、X の制限を超えます。値 X は動的です。サイズが変更されると、値も変更されます。 | |
512 | UserIdLimitExceeded | UserID サイズが X 制限を超えます。 | ユーザーが提供するユーザー ID アレイの長さが X の制限を超えています。 | |
513 | AttributeFormatError | 属性 userId 形式は無効です。 | 提供されたユーザーIDは数字ではありません。 | |
513 | AttributeFormatError | 属性メタデータフォーマットは無効です。 | メタデータはタブルではありません。 | |
GetVersionAsyncThrottle | GetVersionAsync リクエストがドロップされました。リクエストが制限されました。: | GetVersionAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync リクエストがドロップされました。リクエストが制限されました。: | GetVersionAtTimeAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
ListDataStoresAsyncThrottle | ListDataStoresAsync リクエストがドロップされました。リクエストが制限されました。: | ListDataStoresAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
ListKeysAsyncThrottle | ListKeysAsync リクエストがドロップされました。リクエストが制限されました。: | ListKeysAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
ListVersionsAsyncThrottle | ListVersionsAsync リクエストがドロップされました。リクエストが制限されました。: | ListVersionsAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
RemoveVersionAsyncThrottle | RemoveVersionAsync リクエストがドロップされました。リクエストが制限されました。: | RemoveVersionAsync() リクエストは最大のキューサイズを超えており、Robloxは現在のスループットでリクエストを処理できません。 | ||
InvalidTimestamp | タイムスタンプは正の値であり、将来十分の時間ではない必須です。: | 提供されたタイムスタンプ GetVersionAtTimeAsync() は無効でした。 |
サーバーエラーコード
エラー名 | エラーメッセージ | ノート |
---|---|---|
DatastoreThrottled | リクエストレートが datastore の許可された最大値を超えています。 | 1つのデータストアに多くのリクエストが送信されました。 |
InternalServerError | 内部サーバーエラーが発生しました。 | Roblox サーバーでの時折のエラー。理想的には、幾何学的バックオフで再試行してください。 |
InvalidPlace | 提供された場所は無効です。 | 場所に一致するユニバースIDはありません。後でもう一度試してください。 |
InvalidTarget | 提供されたターゲットは無効です。 | データストアのキー名が 50 文字制限を超えています。 |
InvalidUniverse | 提供された宇宙は無効です。 | 宇宙に一致する場所IDがありません。後でもう一度試してください。 |
InvalidUserIds | 提供されたユーザー ID には無効な形式があります。 | ユーザーID を解析できませんでした。 |
KeyThrottled | リクエストレートがキーの許可された最大値を超えています。 | リクエストレートが単一のキーの最大許可リクエストレートを超えています。 |
KeyNotFound | リクエストされたキーは存在しません。 | キーが存在しません。 |
N/A | 進むページがありません。 | このエラーは、最後のページで Pages:AdvanceToNextPageAsync() を呼んだときに発生します。 |
制限
データモデルには 制限 があります。エクスペリエンスがこれらの制限を超えると、サービスは自動的にエクスペリエンスのデータストア使用量を制限し、将来のリクエストを次のキューの 1つに配置します:
- 設定
- 順序付けられ設定するセット
- 取得する
- 順番に取得
キューのリクエストは、受信順に処理されます。呼び出された関数は、リクエストがまだキューに残っている限り、引き続き生成されます。データストアのキー自体が制限されると、リクエストはキューに配置されますが一時的にスキップされます。
各キューにはリクエストの制限が 30 個あります。キューの制限に達すると、リクエストは 301-306 の間のエラーコードで失敗し、リクエストが完全にドロップされたことを示します。
サーバーの制限
各サーバーは、リクエストタイプとユーザー数に基づいて、特定のデータストアリクエストの数が許可されています。GetRequestBudgetForRequestType() を使用して、現在の場所が作成できるデータストアリクエストの数を確認します。
リクエストタ入力プ | 機能 | 分ごとのリクエスト |
---|---|---|
取得する | GetAsync() | 60 + 数プレイヤー×10 |
設定 (制限はリストにあるすべての機能の間で共有されます) | SetAsync() IncrementAsync() UpdateAsync() RemoveAsync() | 60 + 数プレイヤー×10 |
ソートする | GetSortedAsync() | 5+ numPlayers×2 |
バージョンを取得 | GetVersionAsync() GetVersionAtTimeAsync() | 5+ numPlayers×2 |
リスト | ListDataStoresAsync() ListKeysAsync() ListVersionAsync() | 5+ numPlayers×2 |
削除 | RemoveVersionAsync() | 5+ numPlayers×2 |
データ制限
データストアは、エントリごとに使用できるデータ量を制限します。
データストア名、キー名、および スコープ はすべて特定の文字長の下にある必要があります。その長さを確認するには、string.len() を使用します。
データ (キー値) も、最初のタイプにかかわらず、文字列として保存されます。Luau データを JSON 形式のテーブルに変換する JSONEncode() 関数でデータのサイズをチェックできます。
コンポーンент | 最大キャラクター数 |
---|---|
データストア名 | 50 |
キー名 | 50 |
スコープ | 50 |
データ (キー値) | キーごとに 4,194,304 |
メタデータ制限
ユーザー定義メタデータにおける文字数の制限。
コンポーンент | 最大キャラクター数 |
---|---|
キー名 | 50 |
値 | 250 |
キー-値ペア | 300 |
スループット制限
キーごとのスループット制限は、Roblox サーバーでのパフォーマンスが最適になるようにします。各制限は、エクスペリエンス内のすべてのサーバーの単一のキーに適用され、時間を経て更新されます。
Roblox は、最後の 60 秒間にキーに関連付けられたクオタの使用を調査します。現在のリクエストを含む使用がスループット制限内にある場合、リクエストは承認されます。使用が制限を超えた場合、リクエストは拒否されます。
リクエストタ入力プ | 制限 |
---|---|
読む | 分ごとに 25MB |
書く | 分ごとに 4MB |
ストレージ制限
現在、データストアに強制されたストレージ制限はありません。