Codes de l'audit et messages d'erreur du broker

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.

Codes de l'audit

codegravitémessage typeque faire
orphan_emiterrorX is emitted by A, has no local subscriber and crosses no channelUn abonné manque, ou le CHANNEL n'a pas été passé à audit(), ou X manque dans clientEmits/clientReceives. Normal pendant la construction.
dead_receiveerrorX is received by B, has no local emitter and crosses no channel — the subscriber looks alivePlus grave qu'un orphelin : B attend quelque chose qui ne viendra jamais. Même causes.
unused_contracterrorX is in the catalog, neither emitted nor received by anyoneContrat mort, ou composant pas monté.
version_gapwarningX: A emits v1, B expects v2 — bridged by the catalog upcasters, delivery unaffectedRien à faire, c'est la migration en cours. Faites avancer A quand B est partout.
version_gaperrorX: A emits v2, B expects v1 — downcast unsupported, they will never meet ou v2 carries no upcastFromAbonné en retard, ou upcastFrom oublié. Migrez B, ou ajoutez l'upcaster.
revision_gapwarningX: A emits v1 r0 while the current revision is r1 — subscribers receive the completed r1 formRien ne casse. Mettez A à jour quand il produit vraiment la donnée nouvelle.

Erreurs du broker

textemomentcause
catalog defect — …constructionLe 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 …registerDéclaration malformée dans emits ou receives.
X vN is not in the catalog / X vN rR is not in the catalogregisterMessage, version ou révision inconnus. Faute de frappe, ou catalogue d'union incomplet.
A is already registered as emitter of XregisterCollision d'instanceName, ou double déclaration dans le même objet.
registration rejected — object without instanceNameregisterL'objet n'a pas posé this.instanceName avant register.
registration of A rejected as a whole — nothing registered (see errors above)registerConséquence d'une des erreurs précédentes : rien n'est inscrit, l'application continue sans A.
X published by A without emitter registration — droppedpublishA 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 violationspublishPayload 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: …)livraisonCycle A→B→A. Les cinq prochains noms en file aident à le retrouver.
B threw while handling X — remaining deliveries continue: suivi de la pilelivraisonUne exception dans un handleMessage. Les autres abonnés sont servis.
X: no upcast path v1 -> v2, B skippedlivraisonVersion 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)unregisterDouble destroy(), ou homonyme.

Défauts de catalogue (lint)

textecause
"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 compilePattern 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 defaultInvariant 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é.

Messages des canaux WebSocket du chat

textecôtécause
contrat incompatible — … — socket ferméserveurHandshake refusé : message manquant ou en trop, version différente, schéma divergent, révision récepteur < émetteur.
handshake refusé — … — canal terminéclientLe même refus, vu du client ; ready() rejette.
millésime différent (client …, serveur …)les deuxAvertissement seulement : les contenus sont compatibles.
trame avant handshake — socket ferméserveurViolation de protocole.
message 'X' refusé pour la session … (allowMessage) — jetéserveurLa 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 rouvertclientLa page n'a pas fourni de fabrique de socket.
inscription rejetée par le broker — canal inactifles deuxUn message du CHANNEL manque au catalogue d'union.