Codes d'erreur et limites

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Les demandes que vous faites aux magasins de données peuvent échouer en raison de la mauvaise connectivité ou d'autres problèmes. Pour gérer les erreurs et renvoyer des messages avec un code d'erreur,Wrap data store functions in pcall() .

Référence de code d'erreur

Code d'erreurNom de l'erreurMessage d'erreurNotes
101KeyNameEmptyLe nom de la clé ne peut pas être vide.Vérifiez si l'entrée de clé dans la fonction de stockage des données est une chaîne vide.
102KeyNameLimitLe nom de la clé dépasse la limite de 50 caractères.Vérifiez si l'entrée de clé dans la fonction de stockage des données dépasse une longueur de 50.
103ValueNotAllowedImpossible d'autoriser X dans DataStore.Une mauvaise fonction de mise à jour a renvoyé une valeur de type X .
104CantStoreValueImpossible de stocker X dans DataStore .La fonction de mise à jour a renvoyé une valeur de type X qui n'a pas été sérialisée.
105ValueTooLargeLa valeur sérialisée dépasse la limite X.Si vous définissez une valeur avec SetAsync() ou UpdateAsync(), la longueur sérialisée de la valeur ne peut pas dépasser la taille X. Pour vérifier la longueur sérialisée des données, utilisez 1> Class.HttpService:JSONEncode()|JSONEncode()1> .
106MaxValueInvalidMaxValue doit être un nombre entier.Si vous renvoyez une valeur maximale à GetSortedAsync() pour un OrderedDataStore, il doit s'agir d'un nombre entier.
106MinValueInvalidMinValue doit être un nombre entier.Si vous passez une valeur minimum à GetSortedAsync() pour un OrderedDataStore, il doit s'agir d'un nombre entier.
106PageSizeGreaterPageSize doit être dans une tranche prédéfinie.La taille minimum de la page pour un OrderedDataStore est 1.
106PageSizeLesserPageSize doit être dans une tranche prédéfinie.La taille maximale d'une page pour un OrderedDataStore est de 100.
107MinMaxOrderInvalidMaxValue doit être supérieur à ou égal à MinValue.La valeur maximale doit être supérieure ou égale à la valeur minimale pour GetSortedAsync() .
301GetAsyncThrottleGetAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.GetAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
302SetAsyncThrottleSetAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.SetAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
303IncreAsyncThrottleIncrementAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.IncrementAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
304UpdateAsyncThrottleUpdateAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.UpdateAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
304TransformThrottleUpdateAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.UpdateAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
305GetSortedThrottleGetSorted requête abandonnée. La demande a été ralentie mais la file d'attente était pleine.GetSortedAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
306RemoveAsyncThrottleRemoveAsync requête abandonnée. La demande a été ralentie, mais la file d'attente était pleine.RemoveAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
401DataModelNoAccessLa demande a échoué. DataModel est in accessible pendant que l'expérience est en train de s'arrêter.DataModel n'est pas initialisé car l'expérience est en train de s'arrêter.
402LuaWebSrvsNoAccessLa demande a échoué. LuaWebService est inaccessible pendant que l'expérience est en train de s'arrêter.LuaWebService n'est pas initialisé car l'expérience est en train de s'arrêter.
403StudioAccessToApisNotAllowedImpossible d'écrire à DataStore depuis Studio car l'accès à l'API n'est pas activé.L'accès à l'API doit être actif pour utiliser les magasins de données dans Studio.
404InternalErrorOrderedDataStore n'existe pas.Le OrderedDataStore associé à cette demande n'a pas été trouvé. Ceci pourrait être un signe de corruption des données. Réessayez plus tard.
501InternalErrorImpossible d'analyser la réponse car les données pourraient être corrompues.Le serveur n'a pas pu analyser la réponse à votre demande. Ceci pourrait être un signe de corruption des données. Réessayez plus tard.
502RequestRejectedLes services d'API ont rejeté la demande avec erreur X .Une erreur X s'est produite lors du traitement sur les serveurs Roblox. Réessayez plus tard.
503InternalErrorLa demande de stockage de données a été réussie, mais la clé n'a pas été trouvée.La clé demandée n'a pas été trouvée dans le Data Store. Ceci pourrait être un signe de corruption des données. Réessayez plus tard.
504InternalErrorLa demande de stockage de données a été un succès, mais la réponse n'a pas été correctement formatée.Le serveur n'a pas pu analyser la réponse à votre demande. Ceci pourrait être un signe de corruption des données. Réessayez plus tard.
505InternalErrorLa demande OrderedDataStore a été un succès, mais la réponse n'a pas été formâtée correctement.Le serveur n'a pas pu analyser la réponse à votre demande OrderedDataStore. Ceci pourrait être un signe de corruption des données. Réessayez plus tard.
509OperationNotAllowedLes opérations de stockage des données sont bloquées lors de l'exécution d'un RCC personnel pour éviter la corruption des données possibles.Les écrits de données sont bloqués sur les canaux RCC privés.
511AttributeSizeTooLargeLa taille de l'attribut métadonnées dépasse la limite X.La taille métadonnée sérialisée dépasse la limite de X. La valeur X est dynamique. Si la taille change, la valeur change également.
512UserIdLimitExceededUserID la taille dépasse la limite X.La longueur des ID d'utilisateur fournis par l'utilisateur dépasse la limite de X.
513AttributeFormatErrorLe format de l'attribut userId n'est invalide.L'ID utilisateur fourni n'est pas un nombre.
513AttributeFormatErrorLe format de métadonnées d'attribut est invalide.La métadonnée n'est pas une table.
GetVersionAsyncThrottleGetVersionAsync requête abandonnée. La demande a été ralentie.GetVersionAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
ListDataStoresAsyncThrottleListDataStoresAsync requête abandonnée. La demande a été ralentie.ListDataStoresAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
ListKeysAsyncThrottleListKeysAsync requête abandonnée. La demande a été ralentie.ListKeysAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
ListVersionsAsyncThrottleListVersionsAsync requête abandonnée. La demande a été ralentie.ListVersionsAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.
RemoveVersionAsyncThrottleRemoveVersionAsync requête abandonnée. La demande a été ralentie.RemoveVersionAsync() la demande a dépassé la taille maximale de la file d'attente et Roblox est incapable de traiter les demandes à la fois.

Codes d'erreur du serveur

Nom de l'erreurMessage d'erreurNotes
DatastoreThrottledLe taux de demande dépasse le maximum autorisé pour le datastore .Trop de demandes ont été envoyées à un seul Data Store.
InternalServerErrorUne erreur interne du serveur s'est produite.Erreur ponctuelle sur les serveurs Roblox. Réessayez, idéalement avec un backoff exponentiel.
InvalidPlaceL'endroit fourni n'est invalide.Aucun ID d'univers correspondant pour l'emplacement. Réessayez plus tard.
InvalidTargetLa cible fournie n'est invalide.Le nom de la clé de la boutique de données commandée dépasse la limite de 50 caractères.
InvalidUniverseL'univers fourni n'est invalide.Aucun ID de lieu correspondant pour l'univers. Réessayez plus tard.
InvalidUserIdsLes ID d'utilisateur fournis ont un format invalide.Échec de la transformation des identifiants de l'utilisateur.
KeyThrottledLe taux de requête dépasse le maximum autorisé pour la clé.Le taux de demande dépasse le taux de demande maximum pour une seule clé.
KeyNotFoundLa clé demandée n'existe pas.La clé n'existe pas.
N/AAucune page à laquelle avancer.Cette erreur se produit lorsque vous appelez Pages:AdvanceToNextPageAsync() sur la dernière page.

Limites

Les modèles de données ont limites . Si une expérience dépasse ces limites, le service met automatiquement la limite d'utilisation de la donnée de l'expérience et provoque la création d'une demande future dans l'une des files d'attente suivantes :

  • Ensemble
  • configurercommandé
  • Obtenir
  • Commandé

Les demandes d'une file d'attente sont traitées dans l'ordre dans lequel elles sont reçues. La fonction appelée continue de générer tant que sa demande est toujours dans la file d'attente. Si la clé du stockage de données est elle-même limitée, la demande est placée dans la file d'attente, mais est temporairement ignorée.

Chaque file d'attente a un limite de 30 requêtes. Lorsque la limite d'une file d'attente est atteinte, les demandes échouent avec un code d'erreur dans la tranche 301-306, ce qui indique que les demandes ont été abandonnées entièrement.

Limites de serveur

Chaque serveur est autorisé à effectuer un certain nombre de demandes de stockage de données en fonction du type de demande et du nombre d'utilisateurs. Utilisez GetRequestBudgetForRequestType() pour confirmer le nombre de demandes de stockage de données que le lieu actuel peut faire.

Type de demandeFonctionsDemandes par minute
ObtenezGetAsync()60 + numJoueurs × 10
Définir (limite partagée par toutes les fonctions répertoriées)Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync() 0> Class.GlobalDataStore:RemoveAsync()|RemoveAsync()0>60 + numJoueurs × 10
TrierGetSortedAsync()5 + numJoueurs × 2
Obtenir la versionGetVersionAsync()5 + numJoueurs × 2
ListesClass.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync()5 + numJoueurs × 2
Supprimer.RemoveVersionAsync()5 + numJoueurs × 2

Limites de données

Les magasins de données limitent la quantité de données utilisées par entrée.

Le nom du magasin de données, le nom de la clé et la porte d'angle doivent tous être sous une certaine longueur de caractère. Utilisez string.len() pour vérifier leur longueur.

Les données (valeur clé) sont également stockées comme une chaîne, indépendamment de leur taperinitial. Vous pouvez vérifier la taille des données avec la fonction JSONEncode(), qui convertit les données Lua en une table JSON sérialisée.

ComposantNombre max de caractères
Nom du DataStore50
Nom de clé50
Lunette50
Données (valeur clé)4 194 304 par clé

Limites de métadonnées

Limites au nombre de caractères dans les métadonnées utilisateur.

ComposantNombre max de caractères
Nom de clé50
Valeur250
Paires clé-valeur300

Limites de sortie

Les limites de production par clé garantissent que les performances sont optimales sur les serveurs Roblox. Chaque limite s'applique à chaque clé dans toutes les expériences et se rafraîchit au fil du temps.

Roblox examine l'utilisation de la clé associée au key au cours des 60 dernières secondes. Si l'utilisation, y compris la demande actuelle, est dans la limite de sortie, la demande est approuvée. Si l'utilisation dépasse la limite, la demande est refusée.

Type de demandeLimite
Lire25 MB par minute
Écrire4 MB par minute