Skip to content

Diagnostiquer un échec de transmission

Objectif

Identifier la cause racine d'un échec signalé, déterminer si le problème vient de la plateforme, d'une organisation source ou d'une organisation destinataire, et savoir à qui le passer.

Durée estimée : 5 à 10 minutes • Rôle requis : transaction-viewer ou audit-viewer

Trois points d'entrée

Un échec peut vous être signalé de trois manières. Chacune a son point de départ :

SignalPoint de départRôle
Un correlationId dans un ticketTransmissions — barre de rechercheLe plus direct.
Une baisse du taux de succès sur le tableau de bordTableau de bordTransmissionsVue d'ensemble.
Une plainte d'un partenaire (« mon flux ne passe plus »)Transmissions filtrées par organisationApproche par partenaire.

Étape 1 — Localiser la transmission

Avec un correlationId

Menu Suivi des activités ▸ Transmissions, collez l'identifiant dans la barre Rechercher un CorrelationId.

Suivi des transmissions

Sans correlationId

  1. Ajustez la période (filtre en haut à droite) à l'intervalle suspect.
  2. Cliquez sur Filtres pour restreindre sur :
    • Source et/ou Destination — le code de l'organisation concernée.
    • Statut — cochez les statuts d'échec : ERROR, TIMEOUT, CIRCUIT_OPEN, DENIED, PARTNER_ERROR, REJECTED.
    • Type — limite au module concerné (mi-adjudication, mi-consultation-droits, mi-transmission).
  3. Triez par Capturé à décroissant pour voir les plus récentes en premier.

Étape 2 — Lire le statut d'échec

La valeur de la colonne Statut raconte déjà une partie de l'histoire :

StatutQue s'est-il passé ?Où chercher ensuite ?
ERRORErreur technique côté plateforme (parsing, mapping, format).Détail → metadata.reason.
TIMEOUTLe partenaire n'a pas répondu dans le délai du service.Côté partenaire (disponibilité, latence).
CIRCUIT_OPENLe circuit breaker est ouvert — la plateforme refuse d'appeler le partenaire pour lui laisser récupérer.Plusieurs échecs consécutifs sur la même destination.
DENIEDAccès refusé (401/403). Credential invalide, expiré, ou révoqué.Onglet Credentials de l'organisation.
PARTNER_ERRORLe partenaire a répondu par une erreur applicative (4xx/5xx côté métier).metadata.partnerResponseCode + corps de la réponse.
REJECTEDLa plateforme a rejeté la requête avant envoi (règle de validation).Détail → metadata.reason.

Étape 3 — Ouvrir le détail

Cliquez sur l'icône 👁️ à droite de la ligne pour ouvrir le volet de détail.

Détail d'une transmission

Le volet est organisé en plusieurs blocs.

Résumé

  • eventType, classification
  • status, exportStatus
  • sourcedestination
  • latencyMs, capturedAt

Payload request

Le corps du message envoyé. Commencez par vérifier :

  • correlationId — confirmation que c'est bien la transmission que vous cherchez ;
  • resourceCode — le type de donnée (POPULATION, CDO, INVOICE…) ;
  • emitterId / destinations — émetteur et destinataires ;
  • Le payload applicatif lui-même (données métier).

Payload response (si présent)

Présent si le partenaire a répondu. Cherchez :

  • un code d'erreur métier (ex. ERR_BENEFICIARY_NOT_FOUND) ;
  • un message d'erreur lisible ;
  • d'éventuels codes HTTP (401, 403, 409, 500).

Metadata

Champs techniques décisifs :

ChampLecture
statusIdentique à la colonne de la liste.
latencyMsDurée totale. Si proche du timeout du service, l'échec peut être dû à une lenteur partenaire.
partnerResponseCodeCode HTTP retourné par le partenaire.
circuitBreakerStateCLOSED, HALF_OPEN, OPEN. Si OPEN, le partenaire est considéré défaillant.
decisionVerdict final de la plateforme.
processingDurationMsTemps de traitement interne ASACI.
reasonTexte libre expliquant l'échec (le plus utile pour le support).

Étape 4 — Identifier la cause racine

Voici les causes les plus fréquentes, avec le signal qui permet de les reconnaître :

SymptômeCause probableAction
DENIED + code 401/403Credential invalide ou révoqué.Rotation du credential.
TIMEOUT répété sur la même destinationPartenaire saturé ou injoignable.Contacter le partenaire. Surveiller le circuit breaker.
CIRCUIT_OPEN massifConséquence du précédent — la plateforme protège le partenaire.Patientez que le circuit se referme ; pas d'action manuelle.
ERROR avec reason mentionnant un mappingRègle de transformation cassée par un changement de format.Éditeur de mapping.
ERROR avec reason mentionnant un parsingLe partenaire émet un format inattendu.Contacter l'émetteur pour aligner le format.
PARTNER_ERROR + code métier récurrentRègle fonctionnelle (ex. droit fermé, fournisseur inconnu).Informer le partenaire — pas un bug plateforme.
REJECTED avec reason = "validation"Donnée d'entrée hors contrat.Corriger la source.

Étape 5 — Vérifier le contexte

Avant de clôturer, vérifiez que l'incident est isolé ou systémique :

  1. Revenez sur la liste filtrée sur la même destination ou le même type.
  2. Comptez les échecs sur les dernières 24 h.
  3. Si c'est un cas isolé → communiquez le correlationId à qui de droit.
  4. Si c'est systémique → escaladez (voir Et ensuite).

Étape 6 — Recouper avec l'audit

Si vous suspectez une action humaine (changement de configuration juste avant l'incident), ouvrez Suivi des activités ▸ Pistes d'audit et filtrez sur :

  • Organisation cible = l'organisation concernée
  • Période = la fenêtre qui précède le premier échec

Cherchez un partner.service_config_updated, partner.credentials_updated ou partner.mappings_updated qui aurait coïncidé.

Checklist de fin de parcours

  • [ ] Cause racine identifiée (plateforme, organisation source, organisation cible).
  • [ ] correlationId conservé dans le ticket.
  • [ ] Interlocuteur à contacter identifié.
  • [ ] Si action corrective menée côté plateforme (rotation, mapping), vérification sur une nouvelle transmission.

Points d'attention

  • Ne modifiez rien "pour voir". Un échec apporte plus d'information qu'un correctif appliqué à chaud. Comprenez d'abord, corrigez ensuite.
  • Le correlationId est votre seul ticket universel. Donnez-le systématiquement au support — avec, l'investigation prend 1 minute ; sans, elle peut prendre 1 heure.
  • Ne supprimez jamais une transmission. Elles sont conservées à des fins d'audit et de statistiques.
  • Un TIMEOUT isolé n'est pas forcément un bug. Les partenaires ont des pics de charge. C'est la répétition qui fait la tendance.

Et ensuite ?

Documentation ASACI Santé Connect