Aller au contenu

Codes d'erreur

Toutes les erreurs suivent une enveloppe JSON coherente :

{
"error": {
"code": "ERROR_CODE",
"message": "Message lisible",
"request_id": "req_...",
"details": {}
}
}
CodeHTTPDescriptionAction
UNAUTHORIZED401Token manquant, invalide ou revoqueVerifiez que votre token est correct et actif
FORBIDDEN403Restriction de scope, site, plan ou workspaceVerifiez le scope et l’acces aux sites
INVALID_METHOD405Methode HTTP non prise en charge sur cet endpointUtilisez la methode documentee dans la reference API
INVALID_PARAMS422Parametres de requete invalides ou non supportesCorrigez les parametres selon la spec OpenAPI
RETENTION_EXCEEDED422La date from depasse la retention du planAjustez from — consultez details.min_allowed_from
REPORT_RESPONSE_TOO_LARGE422La réponse de rapport sérialisée dépasse le budget dur de 5 MiBUtilisez le summary Content ou réduisez la période/limite
RATE_LIMITED429Le token a depasse le rate limitAttendez X-RateLimit-Reset et reessayez
HARD_CAP_REACHED402Quota mensuel epuiseAttendez la prochaine periode ou changez de plan
REPORT_LOCKED_BY_PROFILE409La famille de routes demandee requiert ExtendedUtilisez un site/profil compatible ou restez sur une route Strict-safe
REPORT_NOT_AVAILABLE_FOR_REQUESTED_PERIOD409Le site est Extended aujourd’hui, mais la periode demandee precede les donnees Extended compatiblesReessayez sur une periode plus recente et inspectez error.details.availability
NOT_FOUND404Endpoint inconnuVerifiez le chemin de l’URL
SITE_NOT_FOUND404Une route dashboard/query demande un site inconnuVerifiez le site_id selectionne et l’acces au workspace
SITE_INACTIVE409Une route dashboard/query demande un site inactifReactivez le site ou basculez vers un site actif
QUERY_TIMEOUT504La requete Athena/reporting a depasse le delaiReessayez avec une periode plus courte ou plus tard
INTERNAL_ERROR500Erreur backend inattendueReessayez avec backoff exponentiel
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API token",
"request_id": "abc123"
}
}
{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded for this token",
"request_id": "abc123",
"details": { "retry_after_seconds": 60 }
}
}

Headers de reponse : X-RateLimit-Limit: 300, X-RateLimit-Remaining: 0, X-RateLimit-Reset: 1740000060.

{
"error": {
"code": "RETENTION_EXCEEDED",
"message": "Query start is outside plan retention",
"request_id": "abc123",
"details": { "min_allowed_from": "2025-12-01" }
}
}
{
"error": {
"code": "HARD_CAP_REACHED",
"message": "Hard cap reached for current billing period",
"request_id": "abc123"
}
}
{
"error": {
"code": "REPORT_RESPONSE_TOO_LARGE",
"message": "The report response exceeds the maximum response budget.",
"request_id": "abc123",
"details": {
"include": "full",
"range_days": 90,
"measured_bytes": 5300000,
"max_bytes": 5242880
}
}
}

Ce rejet n’est pas tronqué, consomme zéro unité et ne crée aucune entrée dans le cache final de réponse.

{
"error": {
"code": "REPORT_LOCKED_BY_PROFILE",
"message": "This report requires Extended collection for the selected site.",
"request_id": "abc123",
"details": {
"route": "goals",
"classification": "extended_only",
"currentProfile": "strict",
"availability": {
"route": "goals",
"classification": "extended_only",
"currentProfile": "strict",
"collectionProfileEffectiveAt": "2026-03-18T09:00:00.000Z",
"current": {
"status": "locked_by_profile",
"reason": "extended_data_required",
"requestedStart": "2026-03-01T00:00:00.000Z",
"requestedEnd": "2026-03-31T23:59:59.999Z",
"compatibleStart": null,
"compatibleEnd": null
},
"compare": null,
"sections": []
}
}
}
}
  • Toujours logger request_id en cas d’echec pour le support
  • Reessayer avec backoff exponentiel pour 500 INTERNAL_ERROR
  • Attendre X-RateLimit-Reset avant de reessayer 429 RATE_LIMITED
  • Ne pas reessayer 401, 403, 402, 422 — corrigez la requete ou la config du token
  • Pour 409 REPORT_LOCKED_BY_PROFILE ou REPORT_NOT_AVAILABLE_FOR_REQUESTED_PERIOD, inspectez error.details.availability puis ajustez la famille de routes ou la periode demandee
  • Pour les routes mixtes qui restent en 200, inspectez d’abord availability.readModel pour identifier le socle strict-safe, puis availability.sections pour detecter les slices d’attribution ou d’actions avancees encore verrouillees en Strict
  • Pour 402 HARD_CAP_REACHED, verifiez l’usage avec GET /v1/usage/current et attendez la prochaine periode

Erreurs de configuration de site dans le dashboard

Section intitulée « Erreurs de configuration de site dans le dashboard »

Le dashboard et le control plane utilisent aussi des codes stables centres sur le concept de site pendant l’enregistrement et la verification :

CodeSignificationAction typique
INVALID_SITE_HOSTNAMELe hostname saisi est invalideEntrer un hostname valide, sans email ni chemin inutile
SITE_SCOPE_NOT_ALLOWEDLe scope large demande n’est pas autorise pour ce hostnameSuivre ce site hostname par hostname
HOSTNAME_PATTERN_OUT_OF_SCOPEUn hostname avance sort du perimetre du siteCreer un autre site ou ajuster l’allowlist
SITE_SCOPE_ALREADY_CLAIMEDUn autre espace a deja verifie ce scopeContacter le support si le périmètre de site doit etre transfere
SITE_DNS_VERIFICATION_FAILEDLe TXT n’a pas encore ete trouveVerifier le nom, la valeur et la propagation DNS
SITE_DNS_VERIFICATION_UNAVAILABLELa verification DNS ne s’applique pas a ce type de siteContinuer la collecte et ignorer cette etape pour l’instant