Dépannage
Trouvez où un appel s’est arrêté, lisez son code de réponse et appliquez la correction.
Sur cette page
Chaque refus contient un code et une phrase qui dit quoi faire. Quand une personne doit agir, il contient aussi un lien vers la page qui règle le problème.
Le résultat d’un outil MCP place le code dans code, à côté de instruction. Sur /p/, une erreur arrive dans error.code et error.instruction, et l’interrogation d’un appel terminé en échec contient error_code. L’API de la console répond avec error.code et error.request_id.
Retrouver l’appel
- Chaque appel a un
call_idqui commence parsp_c_. Ouvrezhttps://my.sallyport.cloud/activity?call=<call_id>pour le voir. - L’appel affiche « Agent », « Connexion », « Version de la clé », « Règle », « Journal » et une « Chronologie » de ce qui s’est passé.
- Écrivez via « Paramètres », « Support » avec le
call_idet, pour une erreur de l’API de la console, avec sonrequest_id.
Voir exactement ce que l’agent a envoyé et ce qui est revenu
Ouvrez Activité, choisissez l’appel et cliquez sur « Ouvrir la requête et la réponse complètes ». L’appel s’affiche tel qu’il a été, sans rien de caché.
- La requête : méthode, adresse complète, chaque en-tête et le corps. Pour SSH la commande, pour les fichiers le chemin et le contenu, pour une base de données l’instruction et ses valeurs, pour l’e-mail le message entier.
- Un en-tête que l’agent a envoyé à la place de la clé, comme son propre
PRIVATE-TOKEN, reste dans la liste avec sa valeur, barré et marqué « Remplacé par la clé de la connexion, non envoyé ». La clé ajoutée par Sallyport n’apparaît jamais. - La réponse : statut, chaque en-tête et le corps. Une longue réponse se charge en entier jusqu’à 1 Mio, et « Télécharger la réponse complète » l’enregistre toute.
- Les requêtes sont gardées aussi longtemps que l’historique des appels, 180 jours par défaut. Les réponses et les corps de requête de plus de 1 Mio sont gardés 30 jours, puis l’appel l’indique.
Un service manque dans les outils de l’agent
- Demandez à l’agent d’appeler
list_access. Il liste chaque service que l’agent peut utiliser et ce qui attend une personne. - Une nouvelle clé va à chaque agent actif de son espace de travail et de son environnement. Un agent en Test ne voit jamais une clé de Production.
- Une connexion retirée de la liste « Accès » d’un agent reste retirée. Remettez-la avec « Ajouter la connexion ».
- Au-delà de 40 outils, les outils des serveurs MCP distants quittent la liste. L’agent les trouve avec
search_toolset les lance aveccall. - Un hôte hors de la liste fonctionne via
http_request. Le premier appel renvoie un lien où vous ajoutez sa clé.
Codes de réponse
| Code | HTTP | Ce qui s’est passé | Que faire |
|---|---|---|---|
AUTH_FAILED | 401 | Le jeton est faux ou révoqué, ou ce n’est pas un jeton d’agent. | Créez-en un avec « Nouveau jeton » dans « Jetons », sur la page de l’agent. |
SUSPENDED | 423 | L’agent, son espace de travail ou l’organisation est en pause. | Appuyez sur « Réactiver l’agent » sur sa page, ou sur « Reprendre les appels » dans « Paramètres », « Zone de danger ». |
SOURCE_IP_NOT_ALLOWED | 403 | L’appel vient d’une adresse hors de la liste de l’agent. | Modifiez « Adresses IP autorisées (facultatif) » dans « Limites », sur la page de l’agent. |
ACCESS_REQUEST_CREATED | 404 | L’agent n’a pas de clé pour cet hôte. | Ouvrez approve_url et ajoutez la clé. L’agent répète l’appel. |
SERVICE_NOT_CONNECTED | 424 | Personne ne s’est connecté à une connexion OAuth. Rien n’a été envoyé. | Ouvrez connect_url et connectez-vous. L’agent répète l’appel. |
APPROVAL_PENDING | 202 | Une personne n’a pas encore répondu. | Répondez sur approve_url. L’agent poursuit avec call_id. |
APPROVAL_DENIED | 403 | Une personne a refusé. Rien n’a été exécuté. | L’agent tient compte du motif et ne répète pas. |
APPROVAL_EXPIRED | 410 | Personne n’a répondu à temps. Rien n’a été exécuté. | Répétez sans call_id pour redemander. |
APPROVAL_SUPERSEDED | 409 | La règle ou la clé a changé après l’ouverture de la carte. | Répétez sans call_id. |
CALL_CONFLICT | 409 | Un autre appel a déjà utilisé cette approbation. | Faites un nouvel appel. |
CALL_NOT_FOUND | 404 | Ce call_id appartient à un autre agent ou n’existe pas. | Faites un nouvel appel. |
POLICY_DENY | 403 | La règle de l’agent pour cette classe est « Refusé ». | approve_url ouvre la page de l’agent. Changez la classe dans sa liste « Accès ». |
PATH_OUT_OF_PREFIX | 400 | Le chemin sort de ce que couvre la connexion. | Écrivez le chemin complet tiré de la documentation du service. |
BAD_REQUEST | 400 | L’appel est mal formé, et reason dit en quoi. | Le texte nomme la correction. La liste plus bas couvre les motifs qu’une personne corrige. |
IDEMPOTENCY_CONFLICT | 409 | Une même idempotency_key est arrivée avec des arguments différents. | Utilisez une nouvelle clé. |
IN_FLIGHT | 409 | Le même appel est déjà en cours. | Attendez retry_after_ms et répétez pour obtenir son résultat. |
ALREADY_EXECUTED | 200 | Une répétition a reçu le résultat du premier appel. Le service n’a pas été rappelé. | Pour l’exécuter de nouveau tout de suite, répétez avec une nouvelle idempotency_key. |
RATE_LIMITED | 429 | Trop d’appels en peu de temps. | Attendez retry_after_ms et répétez. |
PLAN_LIMIT | 200 | Les appels mensuels de l’offre sont épuisés. Les appels continuent de fonctionner, et les résultats MCP portent cette mention. | Ouvrez « Paramètres », « Offre et facturation ». |
UPSTREAM_ERROR | Le statut du service, ou 424 | Le service a répondu par une erreur ou n’a pas répondu. | Lisez status et le corps. Le tableau suivant couvre l’absence de réponse. |
UPSTREAM_TOO_LARGE | 424 | La réponse a dépassé la limite de taille. | Resserrez la requête ou augmentez « Plus grande réponse du service » sous « Limites », sur la page de la connexion, jusqu’à 512 Mio. |
EGRESS_DENIED | 424 | L’adresse est privée (private_range), appartient à Sallyport (self_host) le réseau de Sallyport ne l’atteint pas (pin_mismatch) ou la clé de la connexion n’a pas été enregistrée pour elle (key_elsewhere). Rien n’a été envoyé. | Pour private_range ou self_host, utilisez une adresse publique. Pour pin_mismatch, envoyez le call_id au support. Pour key_elsewhere, demandez à la personne à qui appartient la clé de l’ajouter à nouveau pour cette adresse. |
OUTCOME_UNKNOWN | 424 | Sallyport ne sait pas si le service a agi. | Vérifiez le service avant toute répétition. |
UPGRADE_NOT_SUPPORTED | 426 | Un upgrade vers un autre protocole que WebSocket. | Envoyez la requête sans Upgrade, ou ouvrez un WebSocket. |
WEBSOCKET_REQUIRED | 426 | Une interrogation d’une session WebSocket approuvée, qui ne passe que par un WebSocket. | Rouvrez le WebSocket avec X-Sallyport-Call-Id. |
UNAVAILABLE | 503 | Sallyport est brièvement indisponible. | Répétez après retry_after_ms. |
INTERNAL | 500 | Un défaut de Sallyport. Il est déjà enregistré. | Envoyez le call_id au support. |
Quand le service n’a pas répondu
UPSTREAM_ERROR avec un reason signifie qu’aucune réponse n’est revenue. side_effect vaut none quand rien n’a atteint le service et unknown quand il a pu l’atteindre.
| Motif | side_effect | Que faire |
|---|---|---|
dns | none | Répétez dans quelques secondes. Si l’échec persiste, vérifiez le nom d’hôte. |
connect | none | Vérifiez l’adresse et répétez. |
tls | none | Vérifiez l’adresse. Une répétition échoue pareil tant que le certificat ne change pas. |
authentication | none | Appels SSH seulement. Le serveur a rejeté la clé ou l’utilisateur. Vérifiez les deux sur la connexion. |
host_key | none | Appels SSH seulement. La clé du serveur ne correspond plus à celle épinglée. Vérifiez-la avec le propriétaire du serveur, puis consultez Commandes SSH. |
ttfb | unknown | Le service n’a pas commencé à répondre à temps. Vérifiez-le avant toute répétition. |
timeout | unknown | Le service n’a pas fini à temps. Vérifiez-le avant toute répétition. |
read | unknown | La connexion a coupé pendant l’arrivée de la réponse. Vérifiez le service avant toute répétition. |
Erreurs de requête qu’une personne corrige
L’agent corrige lui-même la plupart des motifs de BAD_REQUEST, et le texte lui dit comment. Ceux-ci demandent une personne :
not_httpsavecconsole_url: l’adresse de la connexion commence parhttp://. Passez-la enhttps://sur la page de la connexion.mcp_binding,database_bindingouemail_binding: un appel sur/p/vise un serveur MCP, une base de données ou une boîte aux lettres. Appelez ses outils sur le point d’accès MCP.sftp_operation: un appel de fichiers ne nomme pas clairement une seule opération ;detaildit quoi changer.missing_host: la connexion couvre tous les hôtes d’un service, l’appel doit donc en nommer un. Sur/p/, placez l’hôte juste après l’ID de la connexion.
Erreurs de l’API de la console
FORBIDDENnomme le rôle requis dansdetails.required_role. L’export du journal demande un propriétaire, ou un administrateur ou un auditeur de toute l’organisation sans rôle plus restreint dans un espace de travail.- Une clé API ne peut pas répondre à une carte : une décision demande une personne.
VALIDATION_FAILEDnomme chaque champ erroné dansdetails.fields.AUTH_FAILEDsignifie que la session a pris fin ou que la clé API a été révoquée.
Remplacer une clé de service sans coupure
- Créez une nouvelle clé chez le fournisseur pendant que l’actuelle fonctionne encore.
- Ouvrez la clé dans Clés de service, appuyez sur « Remplacer la clé », collez la nouvelle valeur et appuyez sur « Enregistrer la nouvelle clé ».
- Faites un appel via Sallyport. Quand il réussit, révoquez l’ancienne clé chez le fournisseur.