错误代码和限制

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

由于网络连接不佳或其他问题,您向数据存储提出的请求可能会失败。要处理错误并返回带有错误代验证码的消息,请将数据存储函数包装在 pcall()

错误代码参考

错误代验证码错误名称错误消信息注释
101KeyNameEmpty钥匙名不能为空。检查数据存储函数的键输入是否为空字符串。
102KeyNameLimit钥匙名超过了 50 字符限制。检查数据存储函数的键输入超过长度 50 的情况。
103ValueNotAllowed无法在 中允许 DataStore一个错误的更新函数返回了类型 X 的值。
104CantStoreValue无法在 X 中存储 DataStore .更新函数返回了类型 X 的值,没有序列化。
105ValueTooLarge序列化值超过 X 限制。如果你用 SetAsync()UpdateAsync() 设置值,那么值的序列长度不能超过尺寸 X 。要检查数据的序列长度,请使用 JSONEncode()
106MaxValueInvalidMaxValue 必须是整数。如果你向 GetSortedAsync() 传递最大值,用于 OrderedDataStore,它必须是整数。
106MinValueInvalidMinValue 必须是整数。如果你向 GetSortedAsync() 传递最小值为 OrderedDataStore ,它必须是整数。
106PageSizeGreaterPageSize 必须在预定义范围内。OrderedDataStore 的最小页面尺寸为 1。
106PageSizeLesserPageSize 必须在预定义范围内。OrderedDataStore 的最大页面尺寸为 100。
107MinMaxOrderInvalidMaxValue 必须大于或等于 MinValue最大值必须大于或等于 GetSortedAsync() 的最小值。
301GetAsyncThrottleGetAsync 请求被丢弃。请求被限制,但队列已满。GetAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
302SetAsyncThrottleSetAsync 请求被丢弃。请求被限制,但队列已满。SetAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
303IncreAsyncThrottleIncrementAsync 请求被丢弃。请求被限制,但队列已满。IncrementAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
304UpdateAsyncThrottleUpdateAsync 请求被丢弃。请求被限制,但队列已满。UpdateAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
304TransformThrottleUpdateAsync 请求被丢弃。请求被限制,但队列已满。UpdateAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
305GetSortedThrottleGetSorted 请求被丢弃。请求被限制,但队列已满。GetSortedAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
306RemoveAsyncThrottleRemoveAsync 请求被丢弃。请求被限制,但队列已满。RemoveAsync() 请求已超过最大队列大小,Roblox 无法在当前并行处理请求。
401DataModelNoAccess请求失败。DataModel在体验关闭时无法访问。DataModel 因为体验正在关闭,所以未初始化。
402LuaWebSrvsNoAccess请求失败。LuaWebService在体验关闭时无法访问。LuaWebService 因为体验正在关闭,所以未初始化。
403StudioAccessToApisNotAllowed无法从工作室写入 DataStore 因为 API 访问未启用。在工作室使用数据存储需要激活 API 访问。
404InternalErrorOrderedDataStore 不存在。与此请求相关的 OrderedDataStore 未找到。这可能是数据损坏的迹象。请稍后重试。
501InternalError无法解析响应,因为数据可能已损坏。服务器无法解析您的请求的响应。这可能是数据丢失的迹象。请稍后重试。
502RequestRejectedAPI服务拒绝了请求,错误为X在 Roblox 服务器上处理时出现错误 X。请稍后再试。
503InternalError数据存储请求成功,但未找到关键。请求的关键未找到在数据存储中。这可能是数据损坏的迹象。请稍后重试。
504InternalError数据存储请求成功,但响应没有正确格式化。服务器无法解析您的请求的响应。这可能是数据丢失的迹象。请稍后重试。
505InternalErrorOrderedDataStore 请求成功,但响应未正确格式化。服务器无法解析您的 OrderedDataStore 请求的响应。这可能是数据丢失的迹象。请稍后重试。
509OperationNotAllowed在个人 RCC 上运行时,数据存储操作被阻止,以防止数据丢失。数据存储写入被阻止在私有 RCC 通道上。
511AttributeSizeTooLarge元数据属性大小超过了 X 限制。序列化的元数据大小超出了限制的 X 。值 X 是动态的。如果大小发生变化,值也会发生变化。
512UserIdLimitExceededUserID 大小超过了 X 限制。用户提供的用户ID阵列长度超过了限制的X
513AttributeFormatError属性 userId 格式无效。提供的用户 ID 不是数字。
513AttributeFormatError属性元数据格式无效。元数据不是表。
GetVersionAsyncThrottleGetVersionAsync 请求被丢弃。请求被限制。:GetVersionAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
GetVersionAtTimeAsyncThrottleGetVersionAtTimeAsync 请求被丢弃。请求被限制。:GetVersionAtTimeAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
ListDataStoresAsyncThrottleListDataStoresAsync 请求被丢弃。请求被限制。:ListDataStoresAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
ListKeysAsyncThrottleListKeysAsync 请求被丢弃。请求被限制。:ListKeysAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
ListVersionsAsyncThrottleListVersionsAsync 请求被丢弃。请求被限制。:ListVersionsAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
RemoveVersionAsyncThrottleRemoveVersionAsync 请求被丢弃。请求被限制。:RemoveVersionAsync() 请求已超过最大队列大小,Roblox无法在当前并行处理请求。
InvalidTimestamp时戳必须是正数,不超过十分钟的未来。:提供给 GetVersionAtTimeAsync() 的时戳无效。

服务器错误代码

错误名称错误消信息注释
DatastoreThrottled请求率超过了 datastore 允许的最大值。发送了太多请求给单个数据存储。
InternalServerError出现了内部服务器错误。在 Roblox 服务器上的时候性错误。请再试一次,最好是使用指数递减。
InvalidPlace提供的地点无效。该场景方没有匹配的宇宙ID。请稍后再试。
InvalidTarget提供的目标无效。订阅数据存储库的键名超过了 50 字符限制。
InvalidUniverse提供的宇宙无效。宇宙没有匹配的地点ID。请稍后再试。
InvalidUserIds提供的用户 ID 有无效的格式。无法解析用户 ID。
KeyThrottled请求率超过了钥键的允许最大值。请求率超过了单个键的最大允许请求率。
KeyNotFound请求的键不存在。钥匙不存在。
N/A没有可前进的页面。当您在最后一页调用 Pages:AdvanceToNextPageAsync() 时,出现此错误。

限制

数据模型有 限制 。如果体验超出这些限制,服务会自动限制体验的数据存储使用并导致未来请求放置在以下队列之一:

  • 设置
  • 排序设置
  • 获取
  • 按顺序获取

队列中的请求按收到顺序处理。调用的函数继续产生,直到其请求仍然处于队列中。如果数据存储键本身被限制,请求将被放置在队列中,但暂时跳过。

每个队列都有 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()检查它们的长度。

数据(键值)也以字符串形式存储,无论其初始输入如何。您可以使用 JSONEncode() 函数来检查数据的大小,该函数将 Luau 数据转换为序列化 JSON 表。

组件最大字符数
数据存储名称50
关键名称50
范围50
数据(键值)每个键 4,194,304

元数据限制

对用户定义元数据中字符数量的限制。

组件最大字符数
关键名称50
250
键值对300

带宽限制

每个键的吞吐限制确保在 Roblox 服务器上的性能最佳。每个限制适用于体验中的所有服务器上的每个键,并随着时间的推移进行刷新。

Roblox 检查了关键与最后 60 秒相关的配额使用情况。如果使用,包括当前请求,在带宽限制内,请求被批准。如果使用超过限制,请求将被拒绝。

请求类输入限制
阅读每分钟 25MB
写入每分钟 4 MB

存储限制

目前,数据存储库没有强制存储限制。