Erreurs courantes
En bref
Ce guide de reference repertorie les erreurs les plus frequentes de l'API Ontologie, avec leurs causes et solutions.
Prerequis techniques
- Une cle API active avec les scopes necessaires.
- Un acces a un workspace Ontologie.
- Un client HTTP (
curl, Postman, Insomnia ou equivalent).
Erreurs d'authentification
401 Unauthorized
Symptomes :
{
"success": false,
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Invalid or missing API key"
}
}
Causes possibles :
- Header
Authorizationmanquant - Format de cle API invalide
- Cle API expiree
- Cle API revoquee
Solutions :
# Verifier le format du header (doit inclure "Bearer ")
curl -H "Authorization: Bearer df_xxx" # Correct
curl -H "Authorization: df_xxx" # Incorrect
# Verifier que la cle est valide dans Parametres > Cles API
403 Forbidden
Symptomes :
{
"error": {
"code": "AUTHORIZATION_ERROR",
"message": "Insufficient permissions"
}
}
Causes possibles :
- Scope requis manquant
- Mauvais ID de workspace
- Cle non autorisee pour ce workspace
Solutions :
# Verifier le header workspace
curl -H "x-workspace-id: $WORKSPACE_ID"
# Verifier les scopes de la cle dans Parametres > Cles API
# Scopes requis :
# - read:nodes pour GET /api/queries/nodes
# - write:nodes pour POST /api/commands/execute
Erreurs de requete
400 Bad Request
Symptomes :
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid request body",
"details": { "field": "entityType", "issue": "required" }
}
}
Solutions :
- Verifier la syntaxe JSON
- Verifier les champs requis
- Verifier les types de champs (string vs number)
- Valider le format des UUIDs
# Valider le JSON avant envoi
echo '{"name":"test"}' | jq .
# Verifier le format UUID
echo $ID | grep -E '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$'
404 Not Found
Causes possibles :
- Ressource supprimee
- Mauvais ID de ressource
- Mauvaise URL d'endpoint
- Ressource dans un autre workspace
Solutions :
# Verifier que l'endpoint existe
curl "https://api.ontologie-growthsystemes.com/api/queries/nodes" # Correct
curl "https://api.ontologie-growthsystemes.com/api/node" # Incorrect
# Verifier que la ressource existe
curl "https://api.ontologie-growthsystemes.com/api/queries/nodes/$ENTITY_ID" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
409 Conflict
Symptomes :
{
"error": {
"code": "CONFLICT",
"message": "Version mismatch",
"details": {
"expectedVersion": 5,
"actualVersion": 7
}
}
}
Cause : Conflit de version — une autre requete a modifie la ressource.
Solution :
- Recharger la ressource pour obtenir la derniere version
- Fusionner vos changements
- Reessayer avec la nouvelle
expectedVersion
# 1. Obtenir la version actuelle
VERSION=$(curl -s "https://api.ontologie-growthsystemes.com/api/queries/nodes/$ID" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" | jq '.data.version')
# 2. Mettre a jour avec la bonne version
curl -X POST "https://api.ontologie-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d "{
\"type\": \"UPDATE_NODE\",
\"payload\": { \"id\": \"$ID\", \"name\": \"Nouveau Nom\" },
\"expectedVersion\": $VERSION
}"
422 Unprocessable Entity
Symptomes :
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"details": {
"entityType": "must be one of: concept, object, process, actor"
}
}
}
Cause : JSON valide mais donnees invalides.
Solutions :
- Verifier les valeurs autorisees pour chaque champ
- Consulter la documentation de l'endpoint
429 Too Many Requests
Symptomes :
HTTP/1.1 429 Too Many Requests
Retry-After: 60
X-RateLimit-Remaining: 0
Solutions :
// Implementer un backoff exponentiel
async function apiCallWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After') || 60;
await new Promise(r => setTimeout(r, retryAfter * 1000));
continue;
}
return response;
}
throw new Error('Nombre maximum de tentatives depasse');
}
Erreurs serveur
500 Internal Server Error
Actions :
- Reessayer la requete apres 5 secondes
- Verifier la page de status
- Si persistant, signaler avec le
requestId
# Inclure le requestId dans le ticket de support
{
"requestId": "req_abc123def456",
"timestamp": "2024-01-15T10:30:00Z",
"endpoint": "/api/commands/execute",
"payload": "..."
}
503 Service Unavailable
Causes possibles :
- Maintenance planifiee
- Surcharge systeme
- Deploiement en cours
Actions :
- Verifier la page de status
- Reessayer avec backoff exponentiel
- Attendre 5-10 minutes
Erreurs specifiques aux fonctionnalites
Modeler : Entite non visible
Cause : Delai de synchronisation.
Solution : Attendre 100ms puis rafraichir la page.
Modeler : Creation de relation echoue
Cause : IDs source ou target invalides.
Solution : Verifier que les deux entites existent dans le workspace.
Live Data : Source non connectee
Causes possibles :
- URL incorrecte
- Credentials invalides
- Firewall bloquant la connexion
Solution : Utiliser l'endpoint de test de connexion :
curl -X POST "https://api.ontologie-growthsystemes.com/api/live-data/test-connection" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "rest",
"config": {
"url": "https://api.example.com/data"
}
}'
RAG : Index non pret
Symptomes :
{
"error": {
"code": "INDEX_NOT_READY",
"message": "Vector index is still building"
}
}
Solution : Attendre la fin de l'indexation ou declencher manuellement :
# Verifier le status
curl "https://api.ontologie-growthsystemes.com/api/rag/index/status" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
API Keys : Scope insuffisant
Symptomes :
{
"error": {
"code": "AUTHORIZATION_ERROR",
"message": "API key does not have required scope: write:nodes"
}
}
Solution : Creer une nouvelle cle avec les scopes requis ou modifier la cle existante.
Checklist de debogage
Etape 1 : Verifier la connexion
curl -s "https://api.ontologie-growthsystemes.com/api/queries/nodes" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
Etape 2 : Verifier l'authentification
# Verifier les headers
curl -v "https://api.ontologie-growthsystemes.com/api/queries/nodes" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" 2>&1 | head -50
Etape 3 : Verifier le format de requete
# Valider le JSON
echo "$REQUEST_BODY" | jq .
# Tester avec un payload minimal
curl -X POST "https://api.ontologie-growthsystemes.com/api/commands/execute" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{"type":"CREATE_NODE","payload":{"name":"Test","entityType":"concept","position":{"x":0,"y":0}}}'
Etape 4 : Comparer avec la documentation
- Consulter la Reference API pour le bon endpoint
- Verifier les champs requis
- Verifier les types de donnees
Etape 5 : Activer le mode verbose
curl -v "https://api.ontologie-growthsystemes.com/api/queries/nodes" \
-H "Authorization: Bearer $API_KEY" \
-H "x-workspace-id: $WORKSPACE_ID"
Verifier :
- Headers de reponse
- Code HTTP
- Corps de la reponse
Obtenir de l'aide
Informations a inclure
- Request ID — Depuis la reponse d'erreur
- Timestamp — Quand l'erreur s'est produite
- Endpoint — URL complete appelee
- Corps de la requete — Sanitise (sans secrets)
- Reponse — Message d'erreur complet
- Etapes pour reproduire
Canaux de support
- GitHub Issues: github.com/growthsystemes/dataforge/issues
- Email: support@growthsystemes.com
- Page de status: status.ontologie-growthsystemes.com
Besoin d'aide ?
Ecrivez-nous : Support et contact.