Aller au contenu principal

Erreurs

Voici la liste complète des erreurs de l’API de la plateforme Kaleidr. Chacune possède un statut HTTP et un code : une courte chaîne stable sur laquelle votre programme peut se baser. Le statut seul ne suffit pas. 403 recouvre de nombreuses causes, et 429 peut signifier aussi bien « ralentissez » que « votre quota est épuisé ».

Commencez par les formats de réponse, car le code ne se trouve pas toujours dans le même champ.

Formats des réponses​

FormatExempleUtilisé pour
Code encapsulé{"detail": "origin_not_allowed"}Presque toutes les erreurs 401, 403, 404, 413, 500 et 503, les codes de dépassement des limites de requête 422, ainsi que deux erreurs 429 (map_load_quota_exceeded et ingest_rate_limited de l’API de téléversement). Le code est la chaîne detail.
Objet plat{"error": "rate_limited", "detail": "API key rate limit exceeded. Slow down."}Toutes les autres erreurs 429. Le code est dans error ; detail est une phrase destinée à l’utilisateur. Les erreurs de quota comportent d’autres champs.
Liste de validation{"detail": [{"loc": ["body", "product"], "msg": "…", "type": "…"}]}Erreur 422 en cas de corps de requête ou de paramètres mal formés. detail est un tableau contenant une entrée par problème.
Erreur avec 200{"error": "Route planning failed."}Uniquement POST /chat/control/route. Voir ci-dessous.

Une fonction permettant d’extraire le code de chacun de ces formats :

async function kaleidrError(res) {
const body = await res.json().catch(() => ({}));
const code =
typeof body.error === 'string' ? body.error : // flat 429
typeof body.detail === 'string' ? body.detail : // wrapped code
Array.isArray(body.detail) ? 'validation_error' : // 422
'unknown_error';
return { status: res.status, code, body, retryAfter: Number(res.headers.get('retry-after')) || null };
}

Deux en-têtes sont importants : Retry-After, exprimé en secondes dans les réponses 429, et X-Request-Id, lorsqu’il est présent, qui identifie la requête si vous contactez l’assistance.

Authentification : 401​

L’API n’accepte pas les identifiants d’authentification.

CodeQuand il survientQue faire
Invalid or missing API keyAucun identifiant n’a été envoyé, ou la clé est inconnue, révoquée ou expirée. Également : un jeton de session expiré ; une session dont la clé a été révoquée ou renouvelée sans délai de grâce ; une session dont l’origine ou le produit a été retiré de sa clé ; une session émise avant une rétrogradation d’offre ; une organisation suspendue ou sans offre.Vérifiez la clé et son état sur kaleidr.com/api-keys. Pour une session, effectuez un nouvel échange. Si une clé valide échoue encore, réessayez après quelques instants : une panne temporaire de la plateforme produit aussi cette réponse.
publishable_requires_sessionUne clé publiable (kld_pk_…) a été envoyée à un point de terminaison d’exécution.Dans le navigateur, laissez le SDK effectuer l’échange ou appelez d’abord POST /sdk/sessions. Sur votre backend, utilisez une clé serveur.

Autorisation : 403​

L’API reconnaît les identifiants, mais refuse cette requête.

CodeQuand il survientQue faire
insufficient_scopeLa clé a été créée sans le périmètre d’autorisation requis par ce point de terminaison ou ce produit.Utilisez une clé disposant de ce périmètre. Impossible d’ajouter des périmètres à une clé existante.
tier_capability_not_allowedLa clé possède le périmètre ou le produit, mais l’offre actuelle de votre organisation ne l’inclut pas. Également renvoyé pour une carte publiée dont l’offre du propriétaire n’inclut pas le chat. Exception : vendor. Une clé portant vendor sous une offre inférieure à Enterprise n’est pas rejetée, mais les réponses sont produites sans vos données.Changez d’offre ou utilisez un produit inclus dans l’offre.
server_key_in_browserUne clé serveur (kld_sk_…) a été envoyée avec l’en-tête Origin.Déplacez l’appel vers votre backend. Si la clé figurait dans le code source de la page, renouvelez-la.
session_origin_mismatchUn jeton de session a été utilisé depuis une autre origine que celle de son émission, ou une session de carte publiée a été utilisée sans Origin.Échangez la session sur la page qui doit l’utiliser.
ip_not_allowedUne clé serveur ou historique dotée d’une liste d’adresses IP autorisées a été utilisée depuis une adresse extérieure à la liste, ou l’adresse de l’appelant n’a pas pu être déterminée.Effectuez l’appel depuis une adresse autorisée ou modifiez allowed_ips de la clé.
publishable_key_requiredPOST /sdk/sessions a été appelé avec une clé serveur ou historique.Utilisez une clé publiable pour l’échange.
origin_requiredIl manque l’en-tête Origin lors de l’échange de session.Effectuez l’échange depuis une page de navigateur.
origin_not_allowedL’origine de la page ne figure pas dans les origines autorisées de la clé ni dans les domaines autorisés de la carte publiée.Ajoutez l’origine exacte à la clé ou le domaine à la carte.
product_not_allowedLa clé est limitée à certains produits et la requête en vise un autre. À l’échange : le product demandé n’appartient pas aux produits autorisés de la clé publiable. À l’exécution : une clé serveur ou historique appelle un point de terminaison d’un produit non autorisé, par exemple une clé limitée à tile qui appelle /chat/*.Modifiez allowed_products ou utilisez une autre clé.
chat_disabledÉchange de carte publiée : la Kaleidr AI de la carte n’active pas la fonctionnalité demandée.Activez Control Tower ou Popup Window dans la tuile Kaleidr AI de la carte dans Studio.
feature_not_grantedUne session de carte publiée ouverte pour le chat en popup a été utilisée sur /chat/control/stream. Chaque fonctionnalité a sa propre session.Échangez une session avec "feature": "control_tower", que la carte accorde tant que Control Tower est activé.
owner_has_no_organizationÉchange de carte publiée : le propriétaire de la carte n’appartient à aucune organisation à facturer.Le propriétaire doit créer ou rejoindre une organisation.

Introuvable : 404​

CodeQuand il survientQue faire
not_foundÉchange de carte publiée : aucune carte publiée ni aucun lien de partage ne possède ce share_id.Vérifiez l’identifiant et que la carte est publiée.
sessions_disabledL’échange des sessions est désactivé sur la plateforme.Vous ne pouvez pas résoudre ce problème vous-même. Contactez l’assistance.
Not FoundLe chemin n’existe pas.Vérifiez l’URL dans les Points de terminaison, notamment le préfixe /inference-api/b2b/v1.

Validation : 422​

Le corps ou les paramètres de la requête ne correspondent pas au format accepté par le point de terminaison. detail est un tableau ; chaque entrée contient loc, qui indique le champ, et msg, qui décrit le problème.

{
"detail": [
{ "type": "missing", "loc": ["body", "product"], "msg": "Field required", "input": {} }
]
}

Corrigez la requête ; ne la réessayez pas telle quelle. Deux points de terminaison de diffusion, /chat/summary/stream et /chat/button/stream, renvoient 500 plutôt que 422 si le corps est mal formé, sauf pour un champ trop long (voir ci-dessous).

Limites des requêtes : 422 avec un code​

Une requête bien formée qui dépasse une limite de taille reçoit également 422, mais sous le format encapsulé : detail contient une chaîne de code et non un tableau. Aucun frais n’est facturé.

{ "detail": "conversation_too_long" }
CodePoint de terminaisonQuand il survientQue faire
too_many_messages/chat/control/streammessages contient plus de 400 entrées.N’envoyez que les échanges les plus récents.
message_too_long/chat/control/streamLe content d’un message dépasse 64 000 caractères.Raccourcissez le message.
conversation_too_long/chat/control/streamLa somme des champs content dépasse 200 000 caractères.Supprimez les échanges les plus anciens et renvoyez la requête.
invalid_session_id/chat/control/streamsession_id dépasse 128 caractères ou contient autre chose que lettres, chiffres, _, ., : ou -.Utilisez un identifiant respectant ce format, comme un UUID.
lang_too_long/chat/control/streamlang dépasse 35 caractères.Envoyez une balise BCP 47 telle que pt-BR.
invalid_layout/chat/control/streamlayout dépasse 16 caractères.Envoyez guide tant que le viewer affiche sa mise en page guide, ou omettez le champ.
field_too_long/chat/summary/stream, /chat/button/streamUn champ texte ou une liste dépasse sa limite.Raccourcissez le champ. Les limites sont indiquées dans les Points de terminaison.

Les limites du flux de chat sont détaillées dans les Points de terminaison.

Requête trop volumineuse : 413​

CodeQuand il survientQue faire
request_too_largeLe corps de la requête dépasse 2 MiB, ou 5 MiB pour un point /design/*. Le corps est {"detail": "request_too_large"}. Aucun frais n’est facturé.Envoyez moins de données : réduisez la conversation ou les lignes d’exemple d’une requête de conception. Ne renvoyez pas le même corps.
request_body_too_largeUne requête de gestion des clés ou de données d’entreprise sous /shared-api dépasse 1 MiB, ou dépasse 32 MiB pour l’import POST /shared-api/datahub/ingests.Envoyez un corps plus petit. Pour les imports, voir Importer vos données d’entreprise.

Une requête déclarant une taille très supérieure aux limites de tous les points de terminaison peut être rejetée à la périphérie du réseau, avant d’atteindre l’API. Cette réponse ne comporte aucun corps JSON Kaleidr et donc aucun code à lire : envoyez moins de données.

Une requête rejetée pour sa taille, comme toute requête rejetée avant traitement, n’est pas facturée et ne réserve ensuite ni crédits IA ni place de concurrence.

Limites de quota et de débit : 429​

Lisez le corps de la réponse avant de décider s’il faut réessayer.

CodeChampRetry-AfterQuand cela se produitQue faire
quota_exceedederrorsecondes jusqu’à reset_atLes crédits d'IA de votre organisation ne suffisent pas à couvrir l'appel, ou celui-ci dépasserait le plafond mensuel de la clé. Ce code est également renvoyé par l'appel de proposition de correspondance de l'API d'importation.Ne réessayez pas. Attendez reset_at, ajoutez des crédits ou augmentez le plafond de la clé.
rate_limitederror5Le nombre maximal de requêtes par minute pour la clé a été atteint. Cela se produit aussi en cas d'échanges de session trop nombreux pour une clé, une carte publiée ou une adresse.Attendez le nombre de secondes indiqué par Retry-After, puis réessayez avec un délai aléatoire supplémentaire.
org_overloadederror5Votre organisation a trop d'appels en cours simultanément.Attendez qu'un appel se termine, puis réessayez. Fermez les flux dont vous n'avez plus besoin.
b2b_overloadederror5L'API a atteint sa capacité maximale pour l'ensemble des appelants.Attendez le nombre de secondes indiqué par Retry-After, puis réessayez en augmentant progressivement le délai d'attente.
limiter_unavailableerror5Le limiteur de débit n'a pas pu répondre.Réessayez sous peu. Le problème ne vient pas de votre débit de requêtes.
visitor_limit_reachederror5Un visiteur du chat d'une carte publiée a dépassé sa limite de requêtes par minute ou par jour.Indiquez au visiteur de réessayer plus tard.
map_load_quota_exceededdetailaucunPOST /sdk/sessions pour tile : le quota de chargements de cartes de l'organisation est épuisé.Ne réessayez pas. Attendez la réinitialisation de la période ou ajoutez un forfait de chargements de cartes.

Le corps de quota_exceeded contient les valeurs numériques :

{
"error": "quota_exceeded",
"detail": "Usage limit reached. Please try again later.",
"product": "b2b",
"meter": "b2b.tokens",
"tier": "pro",
"limit": 5000000,
"used": 4999100,
"remaining": 900,
"reset_at": "2026-11-01T04:00:00+00:00",
"period": "month",
"reset_in_seconds": 1296000
}

C’est le corps qu’obtient une clé serveur. Une requête effectuée avec un jeton de session (issu de l’échange d’une clé publiable ou d’une session visiteur de carte publiée) reçoit un corps plus court, qui ne divulgue ni l’offre ni l’utilisation de l’organisation :

{
"error": "quota_exceeded",
"detail": "Usage limit reached. Please try again later.",
"meter": "b2b.tokens",
"reset_at": "2026-11-01T04:00:00+00:00",
"reset_in_seconds": 1296000
}

Les champs, la variante avec plafond par clé et le code de traitement sont détaillés dans les Quotas et limites de débit.

Erreurs du serveur : 5xx​

StatutCodeQuand il survientQue faire
500An internal error occurred. Please try again.Défaillance inattendue.Réessayez une fois après un court délai.
500map_design_analyze_failedPOST /design/analyze n’a pas pu analyser le tableau. Non facturé.Vérifiez les colonnes et lignes d’exemple puis réessayez.
500Summary stream errorPOST /chat/summary/stream n’a pas pu démarrer : corps illisible ou requête concernant un bâtiment sans address. Un champ trop long renvoie plutôt 422 field_too_long.Corrigez le corps.
500Button chat stream errorPOST /chat/button/stream n’a pas pu démarrer : corps illisible ou sans query. Un champ trop long renvoie plutôt 422 field_too_long.Corrigez le corps.
503sessions_not_configuredL’échange de sessions est indisponible à cause d’une défaillance de la plateforme.Réessayez ; contactez l’assistance si le problème persiste.
503share_grant_unavailableÉchange de carte publiée : impossible de lire les paramètres de la carte.Réessayez bientôt.

Erreur avec le statut 200​

POST /chat/control/route renvoie 200 lorsqu’un itinéraire ne peut pas être calculé :

{ "error": "Route planning failed." }

La réponse contient error et aucun action. Un client qui ne vérifie que le statut considérera l’appel comme réussi, puis échouera en lisant action. Vérifiez toujours la présence de error dans le corps. Le texte est conçu pour être affiché à l’utilisateur. Détails : Itinéraires.

GET /retrieval/geocode/forward présente un comportement semblable : une recherche qui échoue en interne renvoie 200 avec une liste results vide, tout comme une recherche sans résultat.

Erreurs dans un flux​

Tout ce qui précède s’applique avant le début d’un flux : une requête de diffusion refusée produit une erreur HTTP ordinaire. Dès que la réponse est 200 et que les trames circulent, une défaillance est signalée par un événement error :

event: error
data: {"type": "error", "code": "upstream_stall", "message": "The AI service stopped responding. Please try again.", "partial_text": "The Louvre sits"}
FluxcodeQuand il survientQue faire
/chat/control/streamupstream_stallLa réponse ne progresse plus ou le flux atteint sa durée maximale d’environ 10 minutes.Proposez de réessayer. Conservez partial_text s’il est utile.
/chat/control/streamabsentToute autre défaillance pendant la génération de la réponse.Affichez message. Un nouvel essai peut réussir.
/chat/summary/streamabsentLe résumé a échoué.Affichez message ou continuez sans résumé.
/spot/overview/streamabsentL’aperçu a échoué ou la référence ref ne peut pas être décrite. L’événement contient ref dans ce dernier cas : une référence poi: ou region: absente du point, place: sans hint.name, ou un bâtiment ou une adresse que l’API ne décrit pas.N’affichez aucun aperçu. Ne relancez pas un événement comportant ref.
/chat/button/streamaucunCe flux n’envoie pas d’événement error. Une défaillance ferme la connexion sans end.Considérez comme échoué tout flux fermé sans end.

Règles applicables à tous les flux :

  • Un événement error remplace end. Il ne peut être suivi que d’un éventuel événement quota.
  • Une connexion qui se ferme sans end ni error a échoué.
  • L’événement quota n’est pas une erreur. Il s’agit d’un rapport d’utilisation envoyé après end ou error. Pour un flux lu avec un jeton de session, il ne contient que type, meter et reset_at.
  • Un nom d’événement inconnu n’est pas une erreur. Ignorez-le.

Un flux qui échoue ou qui est interrompu reste facturé. Pour /chat/control/stream, le coût n’est jamais inférieur à une estimation de la conversation envoyée et peut donc dépasser la réservation initiale : voir Facturation d’un flux. Une nouvelle tentative constitue une autre requête, facturée séparément.

Erreurs masquées par le navigateur​

Lorsque l’origine ou les identifiants sont refusés, la réponse ne comporte pas d’en-tête CORS ; le navigateur masque le statut et le corps à votre code. La page voit une erreur CORS dans la console et un fetch rejeté ; le SDK journalise une erreur contenant [kaleidr:<product>].

Pour lire le véritable code, ouvrez l’onglet Réseau et sélectionnez la requête en échec. Les cas courants sont origin_not_allowed, Invalid or missing API key et server_key_in_browser. Voir CORS et origines autorisées.

Une réponse 4xx sans aucun corps JSON Kaleidr provient de la périphérie du réseau, avant l’API. Il s’agit soit d’une limitation du débit (patientez et réessayez plus tard), soit d’une requête dont la taille déclarée dépasse largement toutes les limites des points de terminaison (envoyez moins de données ; réessayer sans changement reproduira la même réponse).

Hôte des tuiles​

Les requêtes vers tile.kaleidr.com qui ne proviennent pas d’une intégration Kaleidr utilisant une clé publiable valide depuis une origine autorisée reçoivent :

StatutCodeRetry-AfterQue faire
429tile_access_restricted (dans error, avec message et docs)3600Utilisez le produit Tile avec une clé publiable et ajoutez l’origine de la page à la liste des origines autorisées de la clé, si cette liste existe.

Gestion des clés​

Erreurs provenant de https://api.kaleidr.com/shared-api/api-keys, utilisé par la page API Keys et accessible avec le jeton d’accès de votre compte. Toutes sont au format encapsulé.

StatutCodeQuand il survientQue faire
401variableAucun jeton d’accès de compte valide. Une clé de plateforme n’est pas acceptée ici.Reconnectez-vous.
403org_admin_requiredVotre compte n’est ni propriétaire ni administrateur de l’organisation.Adressez-vous à un propriétaire ou administrateur.
403plan_requiredL’organisation n’a pas d’offre.Choisissez une offre sur kaleidr.com/billing.
403free_plan_publishable_onlyUne clé serveur a été demandée avec l’offre Free. Même erreur si une clé serveur ou historique est renouvelée sous Free.Créez une clé publiable ou passez à Pro.
403tier_capability_not_allowedCréation de clé : scopes ou allowed_products mentionne un élément non autorisé par l’offre. En pratique, il s’agit de demander vendor sous Free ou Pro : la demande est refusée, que vendor_acknowledged soit envoyé ou non, et aucune clé n’est créée. Modification de clé : allowed_products désigne un produit exclu de l’offre ou, sous Free, une liste vide.vendor nécessite Enterprise. Dans les autres cas, indiquez les périmètres et produits autorisés par l’offre.
404key_not_foundAucune clé avec cet identifiant dans l’organisation. La modification et la révocation retrouvent une clé quel que soit son état, si bien que révoquer une clé déjà révoquée renvoie 200. Le renouvellement exige une clé active et renvoie ce code pour une clé révoquée.Vérifiez l’identifiant. Pour un renouvellement, la clé est peut-être révoquée.
409key_limit_reachedL’organisation a atteint le nombre maximal de clés actives de son offre (Free 2, Pro 10, Enterprise 25).Révoquez une clé ou renouvelez-en une plutôt que d’en créer une autre.
409key_already_rotatedLa clé a déjà été renouvelée, que son délai de grâce soit terminé ou non. Elle ne peut pas être renouvelée à nouveau ; toute modification supprimant expires_at ou le fixant après la fin du délai de grâce est refusée. Une valeur expires_at antérieure et les autres champs restent modifiables.Utilisez la clé de remplacement.
409key_expiredUne clé jamais renouvelée a expiré et la modification comprend expires_at. Une clé expirée ne peut pas recevoir une nouvelle date d’expiration ; ses autres champs restent modifiables.Créez une nouvelle clé.
413request_body_too_largeLe corps dépasse 1 MiB.Envoyez un corps plus petit.
422unknown_scopescopes contient une valeur autre que ai, maps, design, vendor.Corrigez la liste.
422unknown_productallowed_products contient une valeur autre que chat, editor, viewer, tile.Corrigez la liste.
422vendor_scope_requires_acknowledgementSous Enterprise, une clé publiable avec vendor a été demandée sans vendor_acknowledged: true. Sous Free et Pro, la même demande renvoie 403 tier_capability_not_allowed.Lisez le périmètre vendor, puis envoyez ce champ.
422no_fields_to_updateDemande de modification sans champ modifiable.Envoyez au moins un champ.
422liste de validationOrigine ou adresse IP mal formée, date d’expiration passée ou nom invalide.Corrigez le champ indiqué dans loc.
500insert_failed, session_unavailableUne défaillance de la plateforme.Réessayez.
503api_key_pepper_not_configuredImpossible de créer des clés à cause d’une défaillance de la plateforme.Réessayez ; contactez l’assistance si le problème persiste.

Importation de données métier​

Erreurs des routes d’import sous https://api.kaleidr.com/shared-api/datahub et de l’appel de proposition de correspondance. La liste complète, avec les limites de fichier et de champ à l’origine de chaque erreur 422, figure dans Importer vos données d’entreprise. Voici les erreurs qui refusent une requête avant lecture du fichier, et celles liées aux appels de dépublication et de suppression d’une version :

StatutCodeQuand il survientQue faire
403org_admin_requiredLe compte n’est ni propriétaire ni administrateur de l’organisation. Également renvoyé par la proposition de correspondance.Adressez-vous à un propriétaire ou administrateur.
403vendor_data_not_on_planL’offre de l’organisation ne permet pas d’importer des données d’entreprise. Cette fonction est réservée à Enterprise. Renvoyé pour l’import, la publication, le retraitement et la proposition de correspondance, jamais pour la lecture, la dépublication ou la suppression.Passez à Enterprise. GET /shared-api/datahub/limits indique, quelle que soit l’offre et sans refuser la demande, si l’organisation peut importer. Sous Free et Pro, ajoutez plutôt des données à une carte dans Kaleidr Studio : voir Jeux de données sur une carte.
404release_not_foundLors d’une dépublication ou suppression, aucune version de cet identifiant n’existe dans l’organisation, notamment après la fin de sa suppression.Pour une suppression, considérez que l’opération est déjà effectuée.
409org_ingest_in_progressUn autre import de l’organisation est en cours de traitement. Renvoyé lors de l’import, de la publication et du retraitement.Attendez sa fin puis recommencez.
409release_not_publishedDépublication demandée pour un brouillon ou une version en échec.Rien à dépublier. Supprimez-la plutôt.
409release_is_publishedSuppression demandée pour la version publiée.Dépubliez-la, puis supprimez-la.
413request_body_too_largeLa requête d’import dépasse 32 MiB.Envoyez un fichier plus petit. Le fichier lui-même peut atteindre la limite de taille de votre organisation.
422{ "errors": [ … ] } dans detailLe fichier dépasse une limite de lignes ou de taille, un champ d’un ensemble JSON dépasse sa longueur maximale, ou le JSON est trop profondément imbriqué. La raison d’une limite contractuelle précise la limite et l’offre.Lisez chaque raison et corrigez le fichier.
429ingest_rate_limitedL’organisation a lancé 30 imports au cours de la dernière heure.Attendez puis recommencez.
429une phrase dans detailLe compte a effectué 30 propositions de correspondance dans la dernière heure. Le corps ne possède pas de champ error.Attendez puis recommencez.
429quota_exceeded dans errorProposition de correspondance : les crédits IA de l’organisation sont épuisés. Le corps est la réponse de quota standard.Attendez reset_at, ajoutez des crédits ou effectuez la correspondance manuellement.

Importation de jeux de données dans Kaleidr Studio​

Cette section ne fait pas partie de l’API de plateforme authentifiée par clé. Elle décrit la réponse reçue par Kaleidr Studio lorsqu’un utilisateur connecté ajoute un jeu de données à une carte dans le panneau Data et que l’import est refusé en raison de sa taille. Aucune clé API n’intervient. Il existe deux refus aux significations différentes :

StatutCodeQuand il survientQue faire
402quota_exceededL’import d’un nouveau jeu de données dépasse l’une des limites de l’offre de l’organisation : lignes dans un jeu, taille d’un fichier ou lignes dans tous les jeux de données de l’organisation. limit_key indique la limite. Les données déjà enregistrées sont conservées. Studio affiche le message et un lien pour changer d’offre.Importez un fichier plus petit ou supprimez les jeux inutiles. Sous Free, passez à Pro. Sous Pro ou Enterprise, contactez Kaleidr pour augmenter le total de l’organisation ; les limites de lignes par jeu et de taille par fichier ne peuvent pas dépasser les plafonds de la ligne suivante.
400VALIDATION_ERRORLe fichier ou jeu de données dépasse un plafond valable pour toutes les offres : fichier de plus de 64 MiB, jeu de données de plus de 100 000 lignes, fichier géographique de plus de 50 000 entités ou image superposée de plus de 16 MiB. Le code est dans error. Changer d’offre ne permet pas cet import.Divisez le fichier en plusieurs fichiers plus petits. Ne renvoyez pas le même fichier et ne proposez pas de changement d’offre.

La réponse dépend de la taille, pas seulement de l’offre. Le plafond général est vérifié en premier : un fichier de plus de 64 MiB ou un jeu de plus de 100 000 lignes produit 400 sous Free, Pro et Enterprise. Le 402 concerne un import respectant ce plafond mais dépassant la limite de l’organisation, par exemple un fichier de 40 MiB sous Free où la limite est de 32 MiB.

402 quota_exceeded​

Le corps est un objet de description de problème contenant également les champs Studio error et message. Le code figure dans error et code, et la phrase dans message et detail :

{
"error": "quota_exceeded",
"message": "Your plan allows 250,000 rows across all of your organization's datasets. Delete a dataset or upgrade to add more.",
"type": "https://errors.kaleidr.com/datasets/quota_exceeded",
"title": "Quota Exceeded",
"status": 402,
"detail": "Your plan allows 250,000 rows across all of your organization's datasets. Delete a dataset or upgrade to add more.",
"code": "quota_exceeded",
"limit_key": "studio.data.rows.max",
"limit": 250000,
"used": 248500,
"tier": "free",
"upgrade_url": "https://kaleidr.com/pricing"
}
ChampSignification
error, codeToujours quota_exceeded. La même valeur deux fois.
message, detailLa même phrase deux fois. Elle décrit clairement la limite et est destinée à être affichée à l’utilisateur.
typeToujours https://errors.kaleidr.com/datasets/quota_exceeded.
titleToujours Quota Exceeded.
statusToujours 402.
limit_keyLa limite ayant refusé l’import. Voir le tableau suivant.
limitLa limite de l’organisation, dans l’unité correspondante.
usedPour le total, les lignes déjà détenues par l’organisation. Pour les deux autres, les lignes ou les MiB de cet import.
tierL’offre de l’organisation : free, pro ou enterprise. Vaut unknown si l’offre n’a pas pu être lue ; les limites Free s’appliquent alors.
upgrade_urlAdresse pour changer d’offre.
limit_keyLimiteUnité de limit et usedPhrase
studio.dataset.rows.maxLignes dans un jeu de donnéesLignes« Votre offre autorise 50 000 lignes par jeu de données. Importez un fichier plus petit ou changez d’offre. »
studio.dataset.file.mbTaille d’un fichier importéMiB« Votre offre autorise des fichiers jusqu’à 32 MB. Importez un fichier plus petit ou changez d’offre. »
studio.data.rows.maxLignes de tous les jeux de l’organisationLignes« Votre offre autorise 250 000 lignes dans tous les jeux de données de votre organisation. Supprimez un jeu ou changez d’offre pour en ajouter davantage. »

Les nombres de ces phrases correspondent aux limites Free ; le message reçu contient les limites de votre organisation. Affichez-le à l’utilisateur et basez votre traitement sur code et limit_key. Cette erreur 402 diffère de l’erreur 429 quota_exceeded de l’API de plateforme, qui concerne les crédits IA.

400 VALIDATION_ERROR​

Le corps possède deux champs et aucun membre supplémentaire de description du problème :

{
"error": "VALIDATION_ERROR",
"message": "File is larger than 64 MB."
}
Motif du refusmessage
Fichier de plus de 64 MiB« Le fichier dépasse 64 MB. »
Jeu de données de plus de 100 000 lignes« Maximum de 100000 enregistrements par jeu de données »
Fichier géographique de plus de 50 000 entités« <filename> contient plus de 50000 entités. Divisez-le ou simplifiez sa géométrie avant de l’importer. »
Image superposée de plus de 16 MiB« L’image superposée dépasse 16 MB. »

Le même statut et le même code sont renvoyés pour d’autres problèmes liés à un fichier importé, comme un format non lu par Studio ou un fichier sans lignes exploitables ; message précise le problème. Traitez toute réponse 400 à un import comme « ce fichier ne peut pas être ajouté en l’état » et affichez message.

Voir aussi​