Pour chercher le texte que vous lisez en console. Les messages sont en anglais dans broker.js et engine.js, en français dans les canaux et composants du chat.
| code | gravité | message type | que faire |
orphan_emit | error | X is emitted by A, has no local subscriber and crosses no channel | Un abonné manque, ou le CHANNEL n'a pas été passé à audit(), ou X manque dans clientEmits/clientReceives. Normal pendant la construction. |
dead_receive | error | X is received by B, has no local emitter and crosses no channel — the subscriber looks alive | Plus grave qu'un orphelin : B attend quelque chose qui ne viendra jamais. Même causes. |
unused_contract | error | X is in the catalog, neither emitted nor received by anyone | Contrat mort, ou composant pas monté. |
version_gap | warning | X: A emits v1, B expects v2 — bridged by the catalog upcasters, delivery unaffected | Rien à faire, c'est la migration en cours. Faites avancer A quand B est partout. |
version_gap | error | X: A emits v2, B expects v1 — downcast unsupported, they will never meet ou v2 carries no upcastFrom | Abonné en retard, ou upcastFrom oublié. Migrez B, ou ajoutez l'upcaster. |
revision_gap | warning | X: A emits v1 r0 while the current revision is r1 — subscribers receive the completed r1 form | Rien ne casse. Mettez A à jour quand il produit vraiment la donnée nouvelle. |
| texte | moment | cause |
| catalog defect — … | construction | Le lint du catalogue a trouvé un défaut (voir ci-dessous). Non fatal, mais les publications touchant ce contrat seront jetées. |
| declaration must be { name, version[, revision] }, got … | register | Déclaration malformée dans emits ou receives. |
| X vN is not in the catalog / X vN rR is not in the catalog | register | Message, version ou révision inconnus. Faute de frappe, ou catalogue d'union incomplet. |
| A is already registered as emitter of X | register | Collision d'instanceName, ou double déclaration dans le même objet. |
| registration rejected — object without instanceName | register | L'objet n'a pas posé this.instanceName avant register. |
| registration of A rejected as a whole — nothing registered (see errors above) | register | Conséquence d'une des erreurs précédentes : rien n'est inscrit, l'application continue sans A. |
| X published by A without emitter registration — dropped | publish | A n'a pas déclaré X dans emits, son inscription a été rejetée, ou un homonyme émet à sa place. |
| X vN rR from A invalid — dropped: suivi des violations | publish | Payload hors contrat. Chaque ligne nomme le chemin : required, string expected, pattern mismatch, value not in […], field not declared in catalog (R1), exactly one of […] expected, got N. |
| delivery budget exhausted (1000 messages in one drain) — probable publish cycle, queue dropped (next: …) | livraison | Cycle A→B→A. Les cinq prochains noms en file aident à le retrouver. |
| B threw while handling X — remaining deliveries continue: suivi de la pile | livraison | Une exception dans un handleMessage. Les autres abonnés sont servis. |
| X: no upcast path v1 -> v2, B skipped | livraison | Version de l'abonné inatteignable (downcast ou upcastFrom absent). |
| A was not registered as subscriber of X / unregister by A refused — the registration belongs to another object (homonym) | unregister | Double destroy(), ou homonyme. |
| texte | cause |
| "versions" object expected / "revisions" object expected / "fields" object expected (R4) | Structure incomplète. Tout objet porte fields. |
| array rule without "items" (R4) | Une liste sans règle d'élément. |
| unknown type "…" | Type hors des cinq. |
| "pattern" only applies to strings / "pattern" does not compile | Pattern sur un nombre, ou regex invalide. |
| "enum" only applies to primitives / "enum" must be a non-empty array of string values | Énumération mal typée. |
| oneOf member "x" must not be required / must not have a default | Invariant du oneOf. |
| field name "a.b" must not contain "." | Le point est réservé aux chemins d'upcastFrom. |
| "x" is required in the current revision but omittable here and has no default — the canonical form cannot be completed (§6.4) | Un champ requis ajouté en révision > 0 sans default : un émetteur en retard ne pourrait pas être complété. |
| texte | côté | cause |
| contrat incompatible — … — socket fermé | serveur | Handshake refusé : message manquant ou en trop, version différente, schéma divergent, révision récepteur < émetteur. |
| handshake refusé — … — canal terminé | client | Le même refus, vu du client ; ready() rejette. |
| millésime différent (client …, serveur …) | les deux | Avertissement seulement : les contenus sont compatibles. |
| trame avant handshake — socket fermé | serveur | Violation de protocole. |
| message 'X' refusé pour la session … (allowMessage) — jeté | serveur | La grille d'admission a dit non : bug du client, ou attaque. |
| X perdu, lien coupé | client | Émission pendant une coupure : pas de tampon, le composant rejouera. |
| pas de deps.reconnect — le lien ne sera pas rouvert | client | La page n'a pas fourni de fabrique de socket. |
| inscription rejetée par le broker — canal inactif | les deux | Un message du CHANNEL manque au catalogue d'union. |