Códigos de erro e limites do armazenamento de dados

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Os pedidos que você faz para os armazenamentos de dados podem falhar devido a uma conectividade ruim ou outros problemas. Para lidar com erros e retornar mensagens com um código de erro, envolva funções de armazenamento de dados em pcall().

Uma chamada de gravação falha, como UpdateAsync(), significa que o servidor do jogo não recebeu uma resposta bem-sucedida. Não garante sempre que a gravação no back-end não ocorreu. Em alguns cenários de falha, o estado final da gravação pode ser desconhecido para o chamador até que seja verificado com uma leitura subsequente sem cache.

Referência de códigos de erro

Código de erroNome do erroMensagem de erroNotas
101KeyNameEmptyO nome da chave não pode estar vazio.Verifique se a chave inserida na função de armazenamento de dados é uma string vazia.
102KeyNameLimitO nome da chave excede o limite de 50 caracteres.Verifique se a chave inserida na função de armazenamento de dados excede 50 caracteres.
103ValueNotAllowedNão é permitido X em DataStore.Uma função de atualização ruim retornou um valor do tipo X.
104CantStoreValueNão é possível armazenar X em DataStore.A função de atualização retornou um valor do tipo X que não serializou.
105ValueTooLargeO valor serializado excede o limite de X.Se você estiver definindo um valor com SetAsync() ou UpdateAsync(), o comprimento serializado do valor não pode exceder o tamanho X. Para verificar o comprimento serializado dos dados, use JSONEncode().
106MaxValueInvalidMaxValue deve ser um número inteiro.Se você estiver passando um valor máximo para GetSortedAsync() para um OrderedDataStore, deve ser um número inteiro.
106MinValueInvalidMinValue deve ser um número inteiro.Se você estiver passando um valor mínimo para GetSortedAsync() para um OrderedDataStore, deve ser um número inteiro.
106PageSizeGreaterPageSize deve estar dentro de um intervalo predefinido.O tamanho mínimo da página para um OrderedDataStore é 1.
106PageSizeLesserPageSize deve estar dentro de um intervalo predefinido.O tamanho máximo da página para um OrderedDataStore é 100.
107MinMaxOrderInvalidMaxValue deve ser maior ou igual a MinValue.O valor máximo deve ser maior ou igual ao valor mínimo para GetSortedAsync().
301GetAsyncThrottlePedido de GetAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido GetAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
302SetAsyncThrottlePedido de SetAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido SetAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
303IncreAsyncThrottlePedido de IncrementAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido IncrementAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
304UpdateAsyncThrottlePedido de UpdateAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido UpdateAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
304TransformThrottlePedido de UpdateAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido UpdateAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
305GetSortedThrottlePedido de GetSorted descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido GetSortedAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
306RemoveAsyncThrottlePedido de RemoveAsync descartado. Pedido foi estrangulado, mas a fila estava cheia.O pedido RemoveAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
401DataModelNoAccessPedido falhou. DataModel está inacessível enquanto a experiência está desligando.DataModel não está inicializado porque a experiência está desligando.
402LuaWebSrvsNoAccessPedido falhou. LuaWebService está inacessível enquanto a experiência está desligando.LuaWebService não está inicializado porque a experiência está desligando.
403StudioAccessToApisNotAllowedNão é possível gravar no DataStore do Studio porque o acesso à API não está habilitado.O acesso à API deve estar ativo para usar os armazenamentos de dados no Studio.
404InternalErrorOrderedDataStore não existe.O OrderedDataStore associado a este pedido não foi encontrado. Isso pode ser um sinal de corrupção de dados. Tente novamente mais tarde.
501InternalErrorNão é possível analisar a resposta porque os dados podem estar corrompidos.O servidor não conseguiu analisar a resposta ao seu pedido. Isso pode ser um sinal de corrupção de dados. Tente novamente mais tarde.
502RequestRejectedOs serviços da API rejeitaram o pedido com erro X.O erro X ocorreu ao processar nos servidores Roblox. Tente novamente mais tarde.
503InternalErrorO pedido de armazenamento de dados foi bem-sucedido, mas a chave não foi encontrada.A chave solicitada não foi encontrada no armazenamento de dados. Isso pode ser um sinal de corrupção de dados. Tente novamente mais tarde.
504InternalErrorO pedido de armazenamento de dados foi bem-sucedido, mas a resposta não estava formatada corretamente.O servidor não conseguiu analisar a resposta ao seu pedido. Isso pode ser um sinal de corrupção de dados. Tente novamente mais tarde.
505InternalErrorO pedido de OrderedDataStore foi bem-sucedido, mas a resposta não estava formatada corretamente.O servidor não conseguiu analisar a resposta ao seu pedido OrderedDataStore. Isso pode ser um sinal de corrupção de dados. Tente novamente mais tarde.
509OperationNotAllowedAs operações de armazenamento de dados estão bloqueadas enquanto executando em um RCC Pessoal para evitar possível corrupção de dados.As gravações de armazenamento de dados são bloqueadas em canais RCC privados.
511AttributeSizeTooLargeO tamanho do atributo de metadados excede o limite de X.O tamanho do metadado serializado excede o limite de X. O valor X é dinâmico. Se o tamanho mudar, o valor também muda.
512UserIdLimitExceededO tamanho de UserID excede o limite de X.O comprimento do array de IDs de usuários fornecidos pelo usuário excede o limite de X.
513AttributeFormatErrorO formato do atributo userId é inválido.O ID do usuário fornecido não é um número.
513AttributeFormatErrorO formato do atributo de metadados é inválido.Os metadados não são uma tabela.
GetVersionAsyncThrottlePedido de GetVersionAsync descartado. Pedido foi estrangulado.O pedido GetVersionAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
GetVersionAtTimeAsyncThrottlePedido de GetVersionAtTimeAsync descartado. Pedido foi estrangulado.O pedido GetVersionAtTimeAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
ListDataStoresAsyncThrottlePedido de ListDataStoresAsync descartado. Pedido foi estrangulado.O pedido ListDataStoresAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
ListKeysAsyncThrottlePedido de ListKeysAsync descartado. Pedido foi estrangulado.O pedido ListKeysAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
ListVersionsAsyncThrottlePedido de ListVersionsAsync descartado. Pedido foi estrangulado.O pedido ListVersionsAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
RemoveVersionAsyncThrottlePedido de RemoveVersionAsync descartado. Pedido foi estrangulado.O pedido RemoveVersionAsync() excedeu o tamanho máximo da fila e o Roblox não consegue processar os pedidos na largura de banda atual.
InvalidTimestampO timestamp deve ser positivo e não mais do que dez minutos no futuro.O timestamp fornecido para GetVersionAtTimeAsync() não era válido.
StandardReadExperienceThrottledO pedido StandardRead foi estrangulado pelos limites da experiência.Um pedido para GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), ou a leitura de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardRead.
StandardWriteExperienceThrottledO pedido StandardWrite foi estrangulado pelos limites da experiência.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardWrite.
StandardListExperienceThrottledO pedido StandardList foi estrangulado pelos limites da experiência.Um pedido para ListKeysAsync(), ListVersionsAsync(), ou ListDataStoresAsync() em armazenamentos de dados padrão excedeu o limite de taxa da experiência StandardList.
StandardRemoveExperienceThrottledO pedido StandardRemove foi estrangulado pelos limites da experiência.Um pedido para RemoveAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardRemove.
OrderedReadExperienceThrottledO pedido OrderedRead foi estrangulado pelos limites da experiência.Um pedido para GetAsync() ou a leitura de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedRead.
OrderedWriteExperienceThrottledO pedido OrderedWrite foi estrangulado pelos limites da experiência.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedWrite.
OrderedListExperienceThrottledO pedido OrderedList foi estrangulado pelos limites da experiência.Um pedido para GetSortedAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedList.
OrderedRemoveExperienceThrottledO pedido OrderedRemove foi estrangulado pelos limites da experiência.Um pedido para RemoveAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedRemove.
StandardReadGameServerThrottledO pedido StandardRead foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), ou a leitura de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa do servidor de jogo StandardRead.
StandardWriteGameServerThrottledO pedido StandardWrite foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa do servidor de jogo StandardWrite.
StandardListGameServerThrottledO pedido StandardList foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para ListKeysAsync(), ListVersionsAsync(), ou ListDataStoresAsync() em armazenamentos de dados padrão excedeu o limite de taxa do servidor de jogo StandardList.
StandardRemoveGameServerThrottledO pedido StandardRemove foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para RemoveAsync() em um armazenamento de dados padrão excedeu o limite de taxa do servidor de jogo StandardRemove.
OrderedReadGameServerThrottledO pedido OrderedRead foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para GetAsync() ou a leitura de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa do servidor de jogo OrderedRead.
OrderedWriteGameServerThrottledO pedido OrderedWrite foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa do servidor de jogo OrderedWrite.
OrderedListGameServerThrottledO pedido OrderedList foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para GetSortedAsync() em um armazenamento de dados ordenado excedeu o limite de taxa do servidor de jogo OrderedList.
OrderedRemoveGameServerThrottledO pedido OrderedRemove foi estrangulado pelos limites do servidor de jogo ou a fila de pedidos estava cheia.Um pedido para RemoveAsync() em um armazenamento de dados ordenado excedeu o limite de taxa do servidor de jogo OrderedRemove.

Códigos de erro do servidor

Nome do erroMensagem de erroNotas
DatastoreDeletedO armazenamento de dados foi excluído.Uma operação no armazenamento de dados não pôde ocorrer porque o armazenamento foi previamente excluído.
DatastoreThrottledA taxa de pedidos excede o máximo permitido para o datastore.Pedidos demais foram enviados para um único armazenamento de dados.
InternalServerErrorOcorreu um erro interno do servidor.Erro ocasional nos servidores Roblox. Tente novamente, idealmente com retrocesso exponencial.
InvalidExclusiveStartKeyA chave de início exclusivo fornecida não é válida.A chave de início exclusivo (cursor) fornecida para uma operação de lista, como ListKeysAsync(), não é válida.
InvalidPlaceO lugar fornecido é inválido.Nenhum ID de Universo correspondente para o lugar. Tente novamente mais tarde.
InvalidTargetO alvo fornecido é inválido.O nome da chave do armazenamento de dados ordenado excede o limite de 50 caracteres.
InvalidUniverseO universo fornecido é inválido.Nenhum ID de Lugar correspondente para o universo. Tente novamente mais tarde.
InvalidUserIdsOs IDs de usuário fornecidos têm um formato inválido.Falha ao analisar os IDs de usuário.
KeyThrottledA taxa de pedidos excede o máximo permitido para a chave.A taxa de pedidos excede a taxa de pedido máxima permitida para uma única chave.
KeyNotFoundA chave solicitada não existe.A chave não existe.
N/ANão há páginas para avançar.Esse erro ocorre quando você chama Pages:AdvanceToNextPageAsync() na última página.
StandardReadExperienceThrottledA taxa de pedido de leitura padrão excede o máximo permitido para a experiência.Um pedido para GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), ou a leitura de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardRead.
StandardWriteExperienceThrottledA taxa de pedido de gravação padrão excede o máximo permitido para a experiência.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardWrite.
StandardListExperienceThrottledA taxa de pedido de lista padrão excede o máximo permitido para a experiência.Um pedido para ListKeysAsync(), ListVersionsAsync(), ou ListDataStoresAsync() em armazenamentos de dados padrão excedeu o limite de taxa da experiência StandardList.
StandardRemoveExperienceThrottledA taxa de pedido de remoção padrão excede o máximo permitido para a experiência.Um pedido para RemoveAsync() em um armazenamento de dados padrão excedeu o limite de taxa da experiência StandardRemove.
OrderedReadExperienceThrottledA taxa de pedido de leitura ordenada excede o máximo permitido para a experiência.Um pedido para GetAsync() ou a leitura de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedRead.
OrderedWriteExperienceThrottledA taxa de pedido de gravação ordenada excede o máximo permitido para a experiência.Um pedido para SetAsync(), IncrementAsync(), ou a gravação de UpdateAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedWrite.
OrderedListExperienceThrottledA taxa de pedido de lista ordenada excede o máximo permitido para a experiência.Um pedido para GetSortedAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedList.
OrderedRemoveExperienceThrottledA taxa de pedido de remoção ordenada excede o máximo permitido para a experiência.Um pedido para RemoveAsync() em um armazenamento de dados ordenado excedeu o limite de taxa da experiência OrderedRemove.

Limites

Modelos de dados têm limites. Se uma experiência exceder esses limites, o serviço estrangula automaticamente o uso de armazenamento de dados da experiência e faz com que futuros pedidos sejam colocados em uma das seguintes filas:

  • Definir
  • Conjunto ordenado
  • Obter
  • Obter ordenado

Os pedidos em uma fila são tratados na ordem em que são recebidos. A função chamada continua a ceder enquanto seu pedido ainda estiver na fila. Se a própria chave do armazenamento de dados estiver estrangulada, o pedido é colocado em uma fila, mas é temporariamente ignorado.

Cada fila tem um limite de 30 pedidos. Quando o limite de uma fila é atingido, os pedidos falham com um código de erro no intervalo de 301-306, indicando que os pedidos foram descartados completamente.

Limites de acesso

Armazenamentos de dados estão sujeitos a limites de experiência e de servidor. Limites de nível de experiência escalam com o número total de usuários simultâneos na experiência, enquanto limites de nível de servidor são configuráveis e devem ser usados como uma ferramenta pelo criador.

Limites de experiência

Cada experiência tem um número permitido de pedidos de armazenamento de dados com base no tipo de armazenamento de dados, tipo de pedido e número de usuários simultâneos. Para cada tipo de armazenamento de dados e tipo de pedido, o limite é compartilhado entre todas as funções listadas.

Observe que UpdateAsync() consome dos orçamentos de pedidos de leitura e de gravação. Uma única chamada irá decrementar ambos os limites.

Armazenamentos de dados padrão
Tipo de pedidoFunçõesPedidos por minuto
LeituraGetAsync()
GetVersionAsync()
GetVersionAtTimeAsync()
UpdateAsync()
250 + usuáriosConcorrentes × 40
GravaçãoSetAsync()
IncrementAsync()
UpdateAsync()
250 + usuáriosConcorrentes × 20
ListarListDataStoresAsync()
ListKeysAsync()
ListVersionsAsync()
10 + usuáriosConcorrentes × 2
RemoçãoRemoveAsync()100 + usuáriosConcorrentes × 40
Armazenamentos de dados ordenados
Tipo de pedidoFunçõesPedidos por minuto
LeituraGetAsync()
UpdateAsync()
250 + usuáriosConcorrentes × 40
GravaçãoSetAsync()
IncrementAsync()
UpdateAsync()
250 + usuáriosConcorrentes × 20
ListarGetSortedAsync()100 + usuáriosConcorrentes × 2
RemoçãoRemoveAsync()100 + usuáriosConcorrentes × 40

Limites de servidor

Cada servidor tem um limite de taxa configurável para cada tipo de pedido, com base no número de jogadores nesse servidor. Os servidores recebem um aumento único de orçamento adicional de pedidos quando são criados pela primeira vez. Use GetRequestBudgetForRequestType() para confirmar o número de pedidos de armazenamento de dados que o servidor atual pode fazer a qualquer momento.

Esses limites são configuráveis pelo criador usando a API SetRateLimitForRequestType(). Usando esta API, um criador pode configurar seus próprios limites de taxa de armazenamento de dados para cada tipo de pedido.

Os seguintes limites de taxa padrão se aplicam se a API não for chamada:

Armazenamentos de dados padrão
Tipo de pedidoEnum DataStoreRequestTypeFunçõesPedidos por minuto
LeituraStandardReadGetAsync()
GetVersionAsync()
GetVersionAtTimeAsync()
UpdateAsync()
60 + numPlayers × 40
GravaçãoStandardWriteSetAsync()
IncrementAsync()
UpdateAsync()
60 + numPlayers × 40
ListarStandardListListDataStoresAsync()
ListKeysAsync()
ListVersionsAsync()
5 + numPlayers × 2
RemoçãoStandardRemoveRemoveAsync()60 + numPlayers × 40
RemoverVersão (obsoleto)RemoveVersionAsyncRemoveVersionAsync()5 + numPlayers × 2
Armazenamentos de dados ordenados
Tipo de pedidoEnum DataStoreRequestTypeFunçõesPedidos por minuto
LeituraOrderedReadGetAsync()
UpdateAsync()
60 + numPlayers × 40
GravaçãoOrderedWriteSetAsync()
IncrementAsync()
UpdateAsync()
30 + numPlayers × 5
ListarOrderedListGetSortedAsync()5 + numPlayers × 2
RemoçãoOrderedRemoveRemoveAsync()30 + numPlayers × 5

Limites de dados

Os armazenamentos de dados limitam quanto dados podem ser usados por entrada.

O nome do armazenamento de dados, o nome da chave e escopo devem estar todos abaixo de um determinado comprimento de caracteres. Use string.len() para verificar seu comprimento.

Os dados (valor da chave) também são armazenados como uma string, independentemente de seu tipo inicial. Você pode verificar o tamanho dos dados com a função JSONEncode(), que converte dados Luau em uma tabela JSON serializada.

ComponenteNúmero máximo de caracteres
Nome do armazenamento de dados50
Nome da chave50
Escopo50
Dados (valor da chave)4.194.304 por chave

Limites de metadados

Limites ao número de caracteres em metadados definidos pelo usuário.

ComponenteNúmero máximo de caracteres
Nome da chave50
Valor250
Pares chave-valor300

Limites de capacidade

Limites de capacidade por chave garantem que o desempenho seja ótimo nos servidores Roblox. Cada limite se aplica a cada chave única em todos os servidores em uma experiência e é atualizado ao longo do tempo.

Roblox examina o uso de cota associado à chave nos últimos 60 segundos. Se o uso, incluindo o pedido atual, estiver dentro do limite de capacidade, o pedido é aprovado. Se o uso exceder o limite, o pedido é negado.

Tipo de pedidoLimite
Leitura25 MB por minuto
Gravação4 MB por minuto

Além dos limites de capacidade acima, o Roblox organiza dados em partições com base em um esquema interno. Como resultado, quando o servidor back-end recebe um alto volume de pedidos para o mesmo armazenamento de dados, isso pode resultar em estrangulamento adicional. Independentemente da causa, o estrangulamento se manifesta como erros DatastoreThrottled ou KeyThrottled, dependendo se o limite de capacidade foi excedido para um único armazenamento de dados ou para uma chave. Essas mensagens de erro se aplicam tanto a armazenamentos de dados ordenados quanto padrão.

Limites de armazenamento

No futuro, para fornecer uma experiência de armazenamento escalável e estável, os armazenamentos de dados implementarão um limite de armazenamento de nível de experiência sobre o seu uso de armazenamento.

Esse limite será a soma de um limite base para cada uma de suas experiências e um limite por usuário baseado no número de usuários vitalícios em sua experiência. Um usuário vitalício é qualquer usuário que tenha ingressado em sua experiência pelo menos uma vez.

O limite de armazenamento será calculado usando a fórmula Total do limite de armazenamento da versão mais recente = 100 MB + 1 MB * contagem de usuários vitalícios.

Quaisquer chaves que você excluir ou substituir, mesmo se ainda acessíveis por meio das APIs de versão, não contam para o uso de armazenamento de sua experiência. No entanto, armazenamentos de dados inteiros excluídos via o método Open Cloud DeleteDataStore continuam a contar para o uso de armazenamento durante o seu período de processamento de 30 dias, até serem excluídos permanentemente.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.