Gestion des erreurs
Récupérez-vous des erreurs HTTP TwexAPI, des échecs d'outils MCP, des limites de crédits et des retries d'actions d'écriture.
TwexAPI renvoie des erreurs à deux niveaux : erreurs JSON-RPC MCP (authentification avant l’exécution d’un outil) et erreurs HTTP REST (après qu’une requête atteint l’API). Conservez les codes de statut, les corps de réponse, les curseurs et les ID pour que les retries et la revue humaine restent sûrs.
Enveloppe de réponse REST
Les appels réussis renvoient :
{
"code": 200,
"msg": "success",
"data": {}
}
Lorsque le statut HTTP n’est pas 2xx, traitez la réponse comme un échec même si le corps inclut un champ code. Journalisez le corps complet, le chemin de requête et tout curseur déjà consommé.
Récupération par statut HTTP
| Statut | Signification | Action |
|---|---|---|
400 |
Requête invalide, champ manquant ou corps mal formé | Corrigez l’entrée. Ne pas réessayer sans modification. |
401 |
Clé API manquante ou invalide | Remplacez l’identifiant depuis le tableau de bord. Vérifiez le formatage Authorization: Bearer. |
403 |
Crédits épuisés, compte restreint ou action non autorisée | Consultez Get Balance. Rechargez ou supprimez les étapes d’écriture jusqu’au retour de l’accès. |
404 |
Tweet, utilisateur, liste ou ressource introuvable | Vérifiez les ID, noms d’écran et fraîcheur du curseur. |
422 |
Validation échouée sur une entrée structurée | Corrigez les champs de schéma documentés sur la page d’endpoint. Ne pas réessayer sans modification. |
429 |
Limite de débit dépassée | Ralentissez selon Limites de débit. Conservez next_cursor et les lignes complétées. |
5xx |
Défaillance de service transitoire ou échec de récupération en amont | Réessayez avec backoff exponentiel et plafond strict. |
Crédits et solde
Les lectures et écritures comptabilisées consomment des crédits de compte. Lorsqu’une tâche traite de nombreuses pages, vérifiez le solde avant et après de longues exécutions :
curl --request GET \
--url 'https://api.twexapi.io/balance' \
--header 'Authorization: Bearer YOUR_API_KEY'
Si les réponses 403 mentionnent des crédits ou l’accès :
- Arrêtez les tâches planifiées qui continuent de solliciter l’API.
- Confirmez le solde dans le tableau de bord.
- Reprenez depuis le dernier curseur enregistré après restauration des crédits.
Retries sûrs pour la pagination
Pour la recherche, les abonnés, les timelines et l’historique DM :
- Stockez
next_cursor,has_next_pageet touttask_iden dehors de la conversation de l’agent. - Après
429ou5xx, réessayez le même curseur, pas la page suivante. - Après
400,404ou422, inspectez les ID et paramètres de requête avant de réessayer.
Actions d’écriture
Les endpoints d’écriture (tweet, réponse, like, follow, envoi de DM) nécessitent :
- Une clé API TwexAPI valide
- Un cookie Twitter ou
auth_tokenenregistré sur la requête
Règles de récupération :
| Situation | Action |
|---|---|
401 sur écriture |
Corrigez la clé API et les identifiants cookie avant de réessayer. |
403 sur écriture |
Confirmez les crédits et que le compte connecté a toujours la permission. |
| Succès ambigu | Consultez le tweet, le DM ou l’état d’engagement avec un endpoint de lecture avant de dupliquer l’action. |
| Workflows d’agents | Exigez une approbation humaine avant tout appel MCP read_only: false. |
Public docs focus on API-key reads.
Erreurs MCP
Échec d’authentification avant l’exécution de l’outil
Lorsque l’authentification MCP échoue, explore et twexapi_request ne s’exécutent pas :
{
"jsonrpc": "2.0",
"error": {
"code": 401,
"message": "Missing MCP API token"
}
}
Corrigez x-api-key ou Authorization: Bearer sur le client MCP, puis relancez l’appel d’outil.
Erreur API renvoyée via twexapi_request
Lorsque l’appel REST sous-jacent échoue, conservez le résultat de l’outil :
{
"status_code": 403,
"endpoint": "get_global_trending_tweets",
"method": "GET",
"path": "/twitter/global-trending/tweets",
"result": {
"detail": "Credits exhausted or action not allowed."
}
}
Appliquez le même tableau de récupération HTTP ci-dessus. Ne demandez pas au modèle de deviner un nouveau chemin — appelez explore à nouveau si la route a pu changer.
Erreurs SDK et CLI
Les SDK générés mappent les échecs HTTP vers des exceptions natives du langage. Interceptez les erreurs à la frontière de la tâche, journalisez le code de statut et le corps de réponse, et routez 429/5xx vers des politiques de retry.
Exemple Python :
import requests
try:
response = requests.get(
"https://api.twexapi.io/balance",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
response.raise_for_status()
except requests.HTTPError as exc:
status = exc.response.status_code
body = exc.response.text
if status == 429:
# Back off, preserve cursor, retry later
...
elif status in (400, 404, 422):
# Fix input; do not retry unchanged
...
raise
Consultez les modèles spécifiques à chaque langage sur chaque page SDK.
Modèle de backoff de retry
Utilisez un backoff exponentiel plafonné pour 429 et 5xx :
retry_delays_seconds = [5, 15, 45, 120]
for delay in retry_delays_seconds:
response = call_twexapi()
if response.ok:
break
if response.status_code in (429, 500, 502, 503, 504):
time.sleep(delay)
continue
break # 4xx other than 429: stop and fix input
Associez le backoff à Limites de débit pour que les tâches planifiées ne redémarrent pas immédiatement à plein QPS après un 429.
Notes spécifiques aux frameworks
| Runtime | Conseil |
|---|---|
| LangChain | Validez les modèles de transfert ; arrêtez le graphe sur 401. |
| Prefect | Utilisez des retries de tâches avec jitter ; stockez les curseurs dans l’état de la tâche. |
| n8n / Zapier / Make | Routez 401/403 vers des alertes ops ; retardez les replays 429. |
| Agents MCP | Ne supprimez jamais next_cursor après un succès partiel. |