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 d'une mauvaise connectivité ou d'autres problèmes.Pour gérer les erreurs et renvoyer des messages avec un code d'erreur, enveloppez les fonctions de stockage de données dans pcall() .

Référence au code d'erreur

coded'erreurNom de l'erreurMessage d'messageNotations
101KeyNameEmptyLe nom de clé ne peut pas être vide.Vérifiez si l'entrée de clé dans la fonction de stockage de données est une chaîne vide.
102KeyNameLimitLe nom de clé dépasse la limite de 50 caractères.Vérifiez si l'entrée de clé dans la fonction de stockage de 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 >.La fonction de mise à jour a retourné 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 JSONEncode() .
106MaxValueInvalidMaxValue doit être un entier.Si vous transmettez une valeur maximale à GetSortedAsync() pour un OrderedDataStore, elle doit être un entier.
106MinValueInvalidMinValue doit être un entier.Si vous transmettez une valeur minimale à GetSortedAsync() pour un OrderedDataStore, elle doit être un entier.
106PageSizeGreaterPageSize doit être dans une plage prédéfinie.La taille minimale de la page pour un OrderedDataStore est de 1.
106PageSizeLesserPageSize doit être dans une plage prédéfinie.La taille maximale de la 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 demande abandonnée. La demande a été limitée, 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 au débit actuel.
302SetAsyncThrottleSetAsync demande abandonnée. La demande a été limitée, 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 au débit actuel.
303IncreAsyncThrottleIncrementAsync demande abandonnée. La demande a été limitée, 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 au débit actuel.
304UpdateAsyncThrottleUpdateAsync demande abandonnée. La demande a été limitée, 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 au débit actuel.
304TransformThrottleUpdateAsync demande abandonnée. La demande a été limitée, 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 au débit actuel.
305GetSortedThrottleGetSorted demande abandonnée. La demande a été limitée, 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 au débit actuel.
306RemoveAsyncThrottleRemoveAsync demande abandonnée. La demande a été limitée, 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 au débit actuel.
401DataModelNoAccessLa demande a échoué. DataModel est inaccessible 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é. Cela 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. Cela pourrait être un signe de corruption des données. Réessayez plus tard.
502RequestRejectedLes services API ont rejeté la demande avec l'erreur X.L'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 magasin de données. Cela pourrait être un signe de corruption des données. Réessayez plus tard.
504InternalErrorLa demande de magasin de données a été réussie, mais la réponse n'a pas été formatée correctement.Le serveur n'a pas pu analyser la réponse à votre demande. Cela pourrait être un signe de corruption des données. Réessayez plus tard.
505InternalErrorOrderedDataStore la demande a réussi, mais la réponse n'a pas été formatée correctement.Le serveur n'a pas pu analyser la réponse à votre demandeOrderedDataStore. Cela pourrait être un signe de corruption des données. Réessayez plus tard.
509OperationNotAllowedLes opérations de magasin de données sont bloquées lorsqu'elles fonctionnent sur un RCC personnel pour empêcher toute corruption de données possible.Les écritures du magasin de données sont bloquées sur les canaux RCC privés.
511AttributeSizeTooLargeLa taille de l'attribut métadonnées dépasse la limite X.La taille des métadonnées sérialisées 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 de l'ensemble d'ID d'utilisateur fourni par l'utilisateur dépasse la limite de X.
513AttributeFormatErrorLe format d'attribut userId n'est invalide.L'ID utilisateur fourni n'est pas un nombre.
513AttributeFormatErrorLe format de métadonnées d'attribut n'est invalide.Les métadonnées ne sont pas une table.
GetVersionAsyncThrottleGetVersionAsync requête abandonnée.La demande a été limitée.:GetVersionAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
GetVersionAtTimeAsyncThrottleGetVersionAtTimeAsync requête abandonnée.La demande a été limitée.:GetVersionAtTimeAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
ListDataStoresAsyncThrottleListDataStoresAsync requête abandonnée.La demande a été limitée.:ListDataStoresAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
ListKeysAsyncThrottleListKeysAsync requête abandonnée.La demande a été limitée.:ListKeysAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
ListVersionsAsyncThrottleListVersionsAsync requête abandonnée.La demande a été limitée.:ListVersionsAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
RemoveVersionAsyncThrottleRemoveVersionAsync requête abandonnée.La demande a été limitée.:RemoveVersionAsync() La demande a dépassé la taille maximale de la file d'attente et Roblox n'est pas en mesure de traiter les demandes au débit actuel.
InvalidTimestampLa date et l'heure d'expiration doivent être positives et ne pas dépasser dix minutes dans le futur.:La date d'expiration fournie à GetVersionAtTimeAsync() n'était pas valide.

Codes d'erreur du serveur

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

Limites

Les modèles de données ont des limites .Si une expérience dépasse ces limites, le service limite automatiquement l'utilisation du magasin de données de l'expérience et cause des demandes futures à être placées dans l'une des files d'attente suivantes :

  • Définir
  • Ensemble configurer
  • Obtenir
  • Commande obtenue

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

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

Limites du 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.

taperde demandeFonctionsDemandes par minute
ObtenirGetAsync()60 + numJoueurs × 10
Définir (la limite est partagée entre toutes les fonctions listées)Class.GlobalDataStore:SetAsync()|SetAsync()``Class.GlobalDataStore:IncrementAsync()|IncrementAsync()``Class.GlobalDataStore:UpdateAsync()|UpdateAsync()``Class.GlobalDataStore:RemoveAsync()|RemoveAsync()60 + numJoueurs × 10
Obtenir triéGetSortedAsync()5 + joueurs numéro × 2
Obtenir la versionClass.DataStore:GetVersionAsync()|GetVersionAsync()``Class.DataStore:GetVersionAtTimeAsync()|GetVersionAtTimeAsync()5 + joueurs numéro × 2
ListeClass.DataStoreService:ListDataStoresAsync()|ListDataStoresAsync()``Class.DataStore:ListKeysAsync()|ListKeysAsync()``Class.DataStore:ListVersionsAsync()|ListVersionAsync()5 + joueurs numéro × 2
EnleverRemoveVersionAsync()5 + joueurs numéro × 2

Limites de données

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

Le nom du magasin de données, le nom de la clé et le scope doivent tous être inférieurs à une certaine longueur de caractère. Utilisez string.len() pour vérifier leur longueur.

Les données (la valeur clé) sont également stockées sous forme de 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 Luau en table JSON sérialisée.

composantNombre maximum de caractères
Nom du magasin de données50
Nom de la clé50
Portée50
Données (valeur clé)4 194 304 par clé

Limites des métadonnées

Limites du nombre de caractères dans les métadonnées définies par l'utilisateur.

composantNombre maximum de caractères
Nom de la clé50
Valeur250
Paires clé-valeur300

Limites de débit

Les limites de débit par clé garantissent que les performances sont optimales sur les serveurs Roblox.Chaque limite s'applique à chaque clé sur tous les serveurs dans une expérience et se renouvelle au fil du temps.

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

taperde demandeLimite
Lire25 Mo par minute
Écrire4 Mo par minute

Limites de stockage

Actuellement, il n'y a pas de limites de stockage imposées sur les magasins de données.