Aller à la documentation
DocumentationDépannage

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_id qui commence par sp_c_. Ouvrez https://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_id et, pour une erreur de l’API de la console, avec son request_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_tools et les lance avec call.
  • 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

CodeHTTPCe qui s’est passéQue faire
AUTH_FAILED401Le 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.
SUSPENDED423L’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_ALLOWED403L’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_CREATED404L’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_CONNECTED424Personne 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_PENDING202Une personne n’a pas encore répondu.Répondez sur approve_url. L’agent poursuit avec call_id.
APPROVAL_DENIED403Une personne a refusé. Rien n’a été exécuté.L’agent tient compte du motif et ne répète pas.
APPROVAL_EXPIRED410Personne n’a répondu à temps. Rien n’a été exécuté.Répétez sans call_id pour redemander.
APPROVAL_SUPERSEDED409La règle ou la clé a changé après l’ouverture de la carte.Répétez sans call_id.
CALL_CONFLICT409Un autre appel a déjà utilisé cette approbation.Faites un nouvel appel.
CALL_NOT_FOUND404Ce call_id appartient à un autre agent ou n’existe pas.Faites un nouvel appel.
POLICY_DENY403La 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_PREFIX400Le chemin sort de ce que couvre la connexion.Écrivez le chemin complet tiré de la documentation du service.
BAD_REQUEST400L’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_CONFLICT409Une même idempotency_key est arrivée avec des arguments différents.Utilisez une nouvelle clé.
IN_FLIGHT409Le même appel est déjà en cours.Attendez retry_after_ms et répétez pour obtenir son résultat.
ALREADY_EXECUTED200Une 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_LIMITED429Trop d’appels en peu de temps.Attendez retry_after_ms et répétez.
PLAN_LIMIT200Les 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_ERRORLe statut du service, ou 424Le 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_LARGE424La 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_DENIED424L’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_UNKNOWN424Sallyport ne sait pas si le service a agi.Vérifiez le service avant toute répétition.
UPGRADE_NOT_SUPPORTED426Un upgrade vers un autre protocole que WebSocket.Envoyez la requête sans Upgrade, ou ouvrez un WebSocket.
WEBSOCKET_REQUIRED426Une interrogation d’une session WebSocket approuvée, qui ne passe que par un WebSocket.Rouvrez le WebSocket avec X-Sallyport-Call-Id.
UNAVAILABLE503Sallyport est brièvement indisponible.Répétez après retry_after_ms.
INTERNAL500Un 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.

Motifside_effectQue faire
dnsnoneRépétez dans quelques secondes. Si l’échec persiste, vérifiez le nom d’hôte.
connectnoneVérifiez l’adresse et répétez.
tlsnoneVérifiez l’adresse. Une répétition échoue pareil tant que le certificat ne change pas.
authenticationnoneAppels SSH seulement. Le serveur a rejeté la clé ou l’utilisateur. Vérifiez les deux sur la connexion.
host_keynoneAppels 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.
ttfbunknownLe service n’a pas commencé à répondre à temps. Vérifiez-le avant toute répétition.
timeoutunknownLe service n’a pas fini à temps. Vérifiez-le avant toute répétition.
readunknownLa 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_https avec console_url : l’adresse de la connexion commence par http://. Passez-la en https:// sur la page de la connexion.
  • mcp_binding, database_binding ou email_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 ; detail dit 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

  • FORBIDDEN nomme le rôle requis dans details.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_FAILED nomme chaque champ erroné dans details.fields.
  • AUTH_FAILED signifie 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.