Aller au contenu

Erreurs & avertissements courants

Cette page recense les erreurs (bloquantes) et avertissements (non bloquants) que l’app de facturation affiche à l’opérateur, leur déclencheur, et la résolution. Les messages sont cités tels qu’ils apparaissent à l’écran.

  • Icône d’erreur par ligne dans le DataGrid + panneau dépliable listant les écarts de validation d’une transaction.
  • Alertes inline (BillingAlert) en haut de la zone de travail (succès, avertissement, erreur).
  • Snackbars pour les erreurs de génération/sauvegarde de documents.
CatégorieCauses fréquentesAction opérateur
Validation (transaction ↔ session)Le deal HubSpot et la session ENT divergentCorriger le deal HubSpot ou la session, puis rafraîchir la ligne
Export FIFPLNACPRO/date erronés, identifiants, 403, captcha, schéma XLSX modifiéSelon le message (voir §2) ; souvent vérifier le compte erevofifpl ou réessayer
Appariement (worker Claude)Worker indisponible ou trop de participantsLe repli déterministe s’active ; vérifier les noms non appariés
Synchro HubSpotPropriété invalide, limite d’API, réseauVérifier les propriétés du deal/contact, réessayer
Confirmation propagationWebhook HubSpot → ENT en retard (>90 s)Réessayer ou ignorer (ignorer = vérifier manuellement)
Génération / sauvegardeDonnées de session, signatures, conflit de n° de factureRégénérer, recharger, ou réattribuer le numéro

Avant toute génération, l’app compare chaque transaction HubSpot à la session ENT correspondante (funded-deal-validation.ts). Tout écart est listé sous la ligne.

MessageDéclencheur
Aucune session trouvee pour ce deal CRMAucune session ENT ne correspond au crmID du deal
Numéro de session : deal "X" vs session "Y"session_number du deal ≠ numéro de la session
Date de début : deal "X" vs session "Y"Date de début du deal ≠ session (format AAAA-MM-JJ)
Date de fin : deal "X" vs session "Y"Date de fin du deal ≠ session
Nom DPC : deal "X" vs session "Y" (FIFPL : Nom FIFPL : …)Nom de famille divergent (comparé en minuscules, espaces retirés)
Prénom DPC : deal "X" vs session "Y" (FIFPL : Prénom FIFPL : …)Prénom divergent

L’app vérifie aussi la cohérence interne des données de session (FundedBillingPage.tsx) :

MessageDéclencheur
Référence financeur manquanteAucune version trouvée pour la date d’inscription, ou référence vide
Nom DPC manquant / Prénom DPC manquant (resp. FIFPL)Nom/prénom de l’étudiant vide
Numéro de session manquantSession sans numéro
Date de début invalide / Date de fin invalideDate non interprétable
La date de début doit être antérieure à la date de finDébut ≥ fin

Résolution : corriger la propriété du deal dans HubSpot ou la donnée dans l’ENT, puis utiliser rafraîchir la ligne (re-fetch deal + session, recalcul des erreurs) — voir Parcours financé. À noter : les consentements non approuvés bloquent la génération des documents pour les formats hors classe virtuelle.

Sous le capot : applications/billing/src/machines/funded-deal-validation.ts, applications/billing/src/pages/funded/FundedBillingPage.tsx.


Le téléchargement de l’XLSX peut échouer. L’app distingue les erreurs transitoires (un seul réessai automatique à 1 s : OOM Chromium, aléa réseau) des erreurs déterministes (échec immédiat, réessayer ne sert à rien). Les messages opérateur :

Message à l’écranCauseRésolution
Identifiants FIFPL refusés par le portail. Vérifiez le compte erevofifpl.Identifiants du compte erevofifpl rejetésMettre à jour les identifiants du compte
FIFPL demande un captcha. Connectez-vous manuellement à of.fifpl.fr pour le résoudre, puis relancez la sync.Captcha / interstitiel WAF après une sonde 403Se connecter manuellement à of.fifpl.fr, résoudre le captcha, relancer
Téléchargement FIFPL refusé (403). Réessayez plus tard ; si le problème persiste, ouvrez of.fifpl.fr pour vérifier l'état du compte.Accès interdit (403)Réessayer ; vérifier l’état du compte sur le portail
FIFPL refuse le téléchargement après reconnexion automatique. Réessayez plus tard ou contactez le support.La reconnexion intégrée a tourné mais le 2ᵉ téléchargement reste 403Réessayer plus tard ou escalader
Téléchargement FIFPL impossible: {détail}Cas non couvert ci-dessus (NACPRO/date erronés → « Aucun dossier FIFPL », filtre ambigu → « Plusieurs dossiers FIFPL », schéma XLSX modifié → colonnes manquantes, puppeteer-service injoignable / réponse inattendue)Lire le détail ; vérifier le NACPRO + la date de fin ; si schéma modifié, contacter le support

Sous le capot : librairies/trpc/src/controller/fifpl/fifpl-client.ts (DETERMINISTIC_ERROR_PATTERNS), mapping vers le message opérateur dans formatFifplWarning (billing-app-machine.ts).


AvertissementCauseRésolution
Appariement Claude indisponible, méthode déterministe utiliséeWorker injoignable, timeout (180 s), ou réponse non exploitableAucune action requise : le repli déterministe s’active automatiquement
Aucune ligne FIFPL pour {prénom} {nom}Aucune ligne de l’XLSX ne correspond à ce participantTélécharger l’XLSX (bouton de l’alerte), vérifier le nom manuellement

Ces avertissements s’affichent sous le titre « Participants non trouvés sur FIFPL » et sont non bloquants.

Sous le capot : librairies/trpc/src/controller/fifpl/worker-client.ts, applications/billing/src/machines/fifpl-row-matcher.ts.


AvertissementCauseRésolution
Synchronisation FIFPL — échec HubSpot ({ids}): {message}Un lot d’écriture HubSpot a échoué (ex. propriété invalide, limite d’API)Lire le message HubSpot ; vérifier les propriétés des contacts/deals cités ; relancer la sync

La synchro est idempotente et écrit par lots de 100 : un lot en échec n’interrompt pas les autres, et relancer ne touche que ce qui manque encore (voir Automatisation FIFPL).

Sous le capot : librairies/trpc/src/controller/billing/index.ts (syncFifplParticipantNames, hubspotErrorMessage).


Après la synchro, l’app attend que le webhook HubSpot → ENT propage les noms. Au-delà de 90 s :

Synchronisation FIFPL non confirmée côté ENT après 90s {n} dossier(s) en attente. Le webhook HubSpot → ENT n’a pas mis à jour le(s) participant(s) suivant(s) : …

Deux boutons : Réessayer la vérification (re-poll l’ENT — utile si la propagation a juste pris du retard) ou Ignorer et continuer.

Un échec de rafraîchissement des sessions après la synchro produit aussi l’avertissement Rafraîchissement des sessions impossible après synchronisation FIFPL: {détail}.

Sous le capot : état confirmingFifplSync dans applications/billing/src/machines/billing-app-machine.ts.


Ces erreurs s’affichent en snackbar / alerte pendant la génération ou la sauvegarde. Quand le code dispose du détail technique, le message générique est remplacé par le message d’erreur sous-jacent.

MessageÉtape
Erreur lors de la génération des données du documentConstruction des DocumentProps (session invalide, données manquantes)
Erreur lors de la génération du PDFRendu PDF
Erreur lors de la récupération des signaturesRécupération des documents de signature
Erreur lors de la régénération des signaturesRéapplication des signatures dactylographiées manquantes (sessions du 01/01/2026 à hier)
Erreur lors de l'upload des documentsUpload des médias (file-api / S3)
Erreur lors de l'enregistrement du dossierSauvegarde du billing_file dans l’ENT
Le numéro de facture était déjà utilisé. Un nouveau numéro a été attribué, veuillez relancer la sauvegarde.Conflit de numéro résolu automatiquement → relancer la sauvegarde
Le numéro de facture est déjà utilisé. Veuillez recharger la page.Conflit non résolu → recharger la page
Erreur lors de la génération de la facture semestrielle 2 (et variantes PDF / upload / … enregistrement du 2e dossier semestriel)Facturation bi-annuelle : seconde facture
Échec du découpage FIFPL : {détail} / Échec du découpage FIFPL — merci de réessayerDécoupage CV-12H en 4 demi-journées
Erreur lors de la création de l'avoirCréation d’un avoir (credit note)

Avertissement « sessions modifiées » (non bloquant mais important) :

Attention des sessions ont été ajoutées/modifiées depuis la dernière régénération des documents, merci de les générer à nouveau.

La sauvegarde est désactivée tant que les documents n’ont pas été régénérés — voir Documents & signatures.

Sous le capot : états generatingProps / generatingPDF / uploadingDocuments / savingBillingFile / resolvingBillNumberConflict / applyingCreditNote dans applications/billing/src/machines/billing-app-machine.ts.


MessageCauseRésolution
Identifiants incorrectsConnexion refusée (ou message d’erreur réseau)Vérifier les identifiants de l’app
Erreur lors de la récupération des sessionsÉchec du chargement des sessions depuis l’ENTBouton Réessayer
Erreur lors de la récupération de l'étudiant (self-funded)Recherche utilisateur échouéeRéessayer / vérifier la saisie

Les erreurs de recherche HubSpot s’affichent dans la carte de recherche avec un bouton Réessayer.

Sous le capot : états authenticating, searching, fetchingSessions dans applications/billing/src/machines/billing-app-machine.ts.