Référence

Codes de statut OPC UA

Tous les codes de statut OPC UA qu'un ingénieur rencontre réellement, avec leur signification, les vraies causes par ordre de fréquence, et la correction. Actuellement 127 codes documentés sur les 273 de la liste normative des StatusCode, priorisés selon la fréquence à laquelle ils bloquent un projet.

Comment s'en servir.Travaillez sur le code que vous avez réellement reçu, pas sur celui que vous attendiez. OPC UA renvoie le code le plus spécifique qu'il peut, et ce code nomme en général le vrai problème: une erreur de certificat n'est presque jamais une erreur réseau. Si vous n'arrivez pas du tout à vous connecter, commencez parBadConnectionRejected; si la session s'ouvre puis tombe, commencez parBadSecurityChecksFailed.
127 pages

Certificats 14

BadCertificateChainIncompleteUn certificat émis par une autorité échoue à la validation alors même que l'autorité racine est approuvée, et l'erreur évoque une chaîne incomplète ou impossible à construire plutôt qu'un pBadCertificateHostNameInvalidLe canal s'ouvre suffisamment pour valider le certificat puis échoue sur une incompatibilité de domaine ou de nom d'hôte, typiquement juste après queBadCertificateInvalidLa négociation échoue immédiatement sans détail utile, et déplacer le certificat dans le magasin de confiance ne change strictement rien.BadCertificateIssuerRevocationUnknownLa validation aboutit sur le certificat du pair mais échoue sur l'un des certificats d'autorité au-dessus, typiquement dans une PKI à deux niveaux où seule la CRL de la sous-autoritéBadCertificateIssuerRevokedToutes les applications dont le certificat provient d'une même autorité de certification échouent à se connecter d'un coup, tandis que celles certifiéBadCertificateIssuerTimeInvalidToutes les applications certifiées par une même CA cessent de se connecter au même instant, alors que les certificats d'application individuels sont tous largement à l'intérieur de leur propre vBadCertificateIssuerUseNotAllowedDes certificats émis par une CA d'entreprise opérationnelle - approuvée ailleurs dans l'entreprise, valable pour TLS - sont refusés par les applications OPC UA avec une erreur d'émettBadCertificatePolicyCheckFailedUn équipement ancien ou un client historique est refusé dès la négociation alors que des pairs modernes se connectent normalement au même endpoint, et le certificat lui-même estBadCertificateRevocationUnknownUn certificat correctement chaîné, en cours de validité et correctement nommé est refusé avec une erreur liée à la révocation, et le dossier crl de votre PKI est vide ou contientBadCertificateRevokedUne connexion qui fonctionnait auparavant échoue à la négociation avec ce code, et le certificat du pair atterrit dans le magasin des rejetés alors quBadCertificateTimeInvalidUne connexion qui fonctionnait depuis des mois échoue du jour au lendemain, ou un équipement flambant neuf échoue dès la première connexion avec une erreur de validité de certificat.BadCertificateUntrustedLa connexion meurt pendant OpenSecureChannel, le client affiche une boîte de dialogue de confiance ou une erreur de certificat, et une copie du certificat fautif apparaîtBadCertificateUriInvalidLa validation du certificat passe les contrôles de confiance et de nom d'hôte puis échoue sur l'URI d'application, souvent juste après que quelqu'un a copié une configuratiBadCertificateUseNotAllowedUn certificat approuvé, en cours de validité et correctement nommé est malgré tout rejeté, et le message pointe l'usage de la clé plutôt que la confia

Sécurité 7

Authentification 4

Sessions 4

Canaux 4

Connexion 17

BadConnectionClosedLes requêtes en vol, en particulier les appels Publish en long polling, se terminent toutes avec la même erreur au même instant, et l'état du client passe en reconBadConnectionRejectedLe client échoue immédiatement avec une erreur de connexion et aucun détail OPC UA - pas de liste d'endpoints, pas d'invite de certificat, pas de session.BadEndpointUrlInvalidLa connexion échoue avant toute invite de certificat ou d'utilisateur, généralement en moins d'une seconde, le client signalant l'URL plutôt qu'un problème réseau ou de sécuriBadProtocolVersionUnsupportedLa connexion TCP est acceptée puis coupée en quelques millisecondes, avant toute liste d'endpoints, toute demande de certificat ou toute session, avecBadRequestInterruptedPlusieurs requêtes en vol échouent ensemble à l'instant exact où une reconnexion démarre, sans qu'aucun motif de défaut côté serveur ne soit attaché à l'une d'elles.BadRequestTimeoutUn type d'appel - un gros Browse, un Read en masse, une méthode qui touche la couche terrain - expire systématiquement alors que les petits appels sur la même session rBadServerHaltedLa connexion s'établit ou se rétablit sans problème, mais chaque appel de service est refusé avec le même code, et cela persiste jusqu'à ce que quelqu'un intervienne ouBadServerNotConnectedSoit tous les appels d'un client échouent instantanément sans la moindre activité réseau, soit un sous-ensemble de tags d'une passerelle passe en mauvBadServerTooBusyLes requêtes sont refusées rapidement et proprement sur une connexion par ailleurs saine, par salves qui coïncident avec un démarrage d'usine, un redémarrage serveur ou unBadShutdownToutes les requêtes en cours se terminent d'un coup avec le même code, la connexion tombe immédiatement après, et le serveur reste injoignable pendant un courtBadTcpEndpointUrlInvalidLa connexion TCP est acceptée puis fermée immédiatement par une trame d'erreur : le client signale donc un échec en bien moins d'une seconde, sans aucBadTcpMessageTooLargeLes petites opérations fonctionnent bien mais un appel précis échoue à chaque fois : un Read large, un Write volumineux, un browse d'un gros dossier, ou une notificatioBadTcpMessageTypeInvalidUn serveur configuré pour le reverse connect journalise des rejets répétés depuis l'adresse du client et cesse de réessayer, tandis que le client affiche un messBadTcpNotEnoughResourcesLes connexions ou les grandes requêtes échouent sur un serveur qui tourne depuis un moment, souvent en même temps que des échecs d'abonnement et de brBadTcpSecureChannelUnknownLes messages sont rejetés au niveau de la couche de trames juste après ce qui ressemblait à une reconnexion réussie, ou juste après un redémarrage du serveur pendant que leBadTcpServerTooBusyLes nouvelles connexions sont refusées au handshake alors que les clients existants continuent de fonctionner, et les refus se concentrent au démarrage de l'usine ou après un redémarrage du serveur.BadTimeoutLes opérations échouent après un intervalle fixe qui correspond à une valeur par défaut du SDK, et la connexion se rétablit souvent d'elle-même un instant plus tard, donnant une dent de scie de d

Espace d'adressage 12

BadAttributeIdInvalidUne lecture renvoie Good au niveau du service mais une entrée du tableau de résultats porte ce statut, en général celle d'un dossier ou d'un objet qu'BadBrowseDirectionInvalidUn appel Browse échoue immédiatement avec ce code pour chaque nœud, y compris des nœuds bien connus comme le dossier Objects, alors qu'un Read sur la même sessionBadContinuationPointInvalidUne requête de browse ou d'historique volumineuse fonctionne sur les premières pages puis échoue en cours de route, plus souvent sur un serveur chargBadNoContinuationPointsLe browse ou l'HistoryRead se met à échouer pour tous les clients sur un serveur chargé, et les défaillances disparaissent après le redémarrage des clients plutôt qu'après une quelconqueBadNoMatchUn chemin de browse qui se résout sur une machine ne trouve aucune correspondance sur une machine apparemment identique, ou une requête qui fonctionnait sur un système de test renvoieBadNodeClassInvalidUne opération précise échoue sur un nœud qui se parcourt et se lit parfaitement, le plus souvent un Call de méthode ou un abonnement à des événements.BadNodeIdInvalidToute requête touchant un nœud particulier échoue de façon identique, et la valeur fautive dans le journal paraît souvent visiblement incorrecte - unBadNodeIdUnknownUn client qui fonctionnait depuis des mois échoue soudainement sur tout ou partie de ses nœuds juste après un chargement de contrôleur, une mise à jour de firmware ou une reconfBadNotFoundUne entrée d'un résultat de traduction de chemin de browse est mauvaise alors que les autres se résolvent, ou bien un chemin entier échoue sur un élément précis que vous voyez pourtant très bien dansBadObjectDeletedUn sous-ensemble de nœuds qui fonctionnait il y a un instant se met à échouer alors que le reste de l'espace d'adressage est intact, souvent après laBadReferenceTypeIdInvalidUn appel Browse ou AddReferences qui fonctionne contre un serveur échoue contre un autre, et le browse ne renvoie rien plutôt qu'un ensemble de résultats vide.BadTooManyMatchesUne traduction de chemin ou une requête échoue uniquement contre les plus grosses machines ou les serveurs les plus chargés, alors que la même requête réussit sur un petit espace d'adres

Accès aux données 14

BadDataEncodingInvalidUn Read ou un CreateMonitoredItems sur une variable structurée échoue avec BadDataEncodingInvalid alors que les nœuds scalaires du même serveur se lisent sans problème.BadDataEncodingUnsupportedLes valeurs structurées se lisent correctement avec l'encodage par défaut mais échouent dès que le client demande du XML ou du JSON, sur un serveur qui se comporte par ailleurs normalementBadDecodingErrorUn nœud précis ou un appel de service précis échoue au décodage alors que tout le reste fonctionne sur la même session, ou un client lève une exceptioBadEncodingLimitsExceededLes lectures ou les notifications d'abonnement fonctionnent sur de petits ensembles et échouent dès qu'un lot grossit, qu'un grand tableau est ajouté ou qu'un export de l'espace d'adressage est tenté.BadIndexRangeInvalidUn Read ou un Write incluant un IndexRange échoue immédiatement, alors que la même requête sans IndexRange réussit et renvoie le tableau entier.BadIndexRangeNoDataUne lecture avec plage qui fonctionnait hier renvoie désormais BadIndexRangeNoData, généralement après que le tableau sous-jacent a rétréci ou que le serveur a redémarré avec un tBadNotReadableLe browse montre le nœud et ses attributs sans problème, mais chaque Read de l'attribut Value et chaque tentative de l'ajouter à un abonnement renvoie BadNotReaBadNotWritableUn Write renvoie BadNotWritable immédiatement, sans délai et sans effet sur la valeur, alors que les Read sur le même nœud fonctionnent parfaitement.BadOutOfRangeUne écriture avec une valeur plausible est rejetée alors qu'une valeur plus petite ou plus grande sur le même nœud passe, et la lecture du nœud révèleBadRequestTooLargeUn Read, un Write ou un CreateMonitoredItems groupé échoue purement et simplement, sans résultats par item, alors que la même opération scindée en deux réussit.BadResponseTooLargeUn Browse d'un gros dossier, un HistoryRead sur une longue fenêtre ou un Publish pendant une salve échoue, alors que le même appel sur un périmètre plus réduit renvoie normaBadStructureMissingUn appel de service échoue immédiatement avec BadStructureMissing et sans résultats par item, en général la première fois qu'une requête construite à la main ou générée est utilisée.BadTypeMismatchUne écriture qui semble correcte renvoie BadTypeMismatch pour un item alors que les autres items de la même requête réussissent, et relire le même nœud fonctionnBadWriteNotSupportedUn Write échoue avec BadWriteNotSupported alors que l'AccessLevel indique CurrentWrite, et la même valeur écrite depuis un autre outil passe.

Appareil 6

Abonnements 13

BadDeadbandFilterInvalidLes items avec bande morte sont rejetés alors que des items identiques avec DeadbandType None sont acceptés, et le rejet suit le nœud plutôt que le clienBadEventFilterInvalidUne tentative d'abonnement aux événements sur l'objet Server ou sur une zone d'alarmes échoue immédiatement, et aucun événement n'est jamais livré aloBadFilterNotAllowedCreateMonitoredItems ou ModifyMonitoredItems rejette un item précis avec ce code alors que des items identiques sans filtre sont acceptés.BadFilterOperandInvalidUn abonnement aux événements est rejeté et la réponse porte un EventFilterResult avec un statut mauvais sur un opérande select ou where précis plutôtBadMonitoredItemFilterUnsupportedLe même filtre qui fonctionne contre un serveur est rejeté par un autre, généralement un automate ou une passerelle embarquée, alors que l'item lui-même est créé avec succBadMonitoredItemIdInvalidModifyMonitoredItems, SetMonitoringMode, SetTriggering ou DeleteMonitoredItems renvoie ce code pour certains items alors que d'autres items du même appel réussBadMonitoringModeInvalidSetMonitoringMode ou CreateMonitoredItems rejette l'item avec ce code, et l'item soit ne remonte jamais rien, soit reste dans le mode qu'il avait déjà.BadNoSubscriptionLa boucle Publish renvoie ce code immédiatement et de façon répétée sur une session qui se connecte proprement et sait lire et parcourir normalement.BadSubscriptionIdInvalidDes appels Publish qui fonctionnaient se mettent à renvoyer ce code à chaque tentative, et plus aucune notification de changement de données n'arrive, alors qu'un simple Read sur leBadTooManyMonitoredItemsCreateMonitoredItems réussit pour la première partie d'un gros lot et renvoie ce code pour le reste : l'abonnement démarre donc avec moins d'itemsBadTooManyOperationsUn appel Read, Write, Browse ou CreateMonitoredItems volumineux est rejeté d'emblée avec ce code comme erreur portant sur toute la requête, alors queBadTooManyPublishRequestsUn client qui fonctionne contre un serveur consigne régulièrement ce code contre un autre, parfois avec des trous occasionnels dans les données, alors que tout le reste deBadTooManySubscriptionsCreateSubscription échoue une fois que le système tourne depuis un certain temps ou une fois les derniers clients mis en service, alors que les abonnements existants continuent de fonctionn

Historique 6

Méthodes 5

Serveur 9

BadInternalErrorUne requête reproductible échoue alors que tout le reste sur la même session fonctionne, et le journal du serveur contient une exception ou une pile d'appels au même inBadInvalidStateLe même appel réussit parfois et échoue à d'autres moments, la différence suivant ce que faisait la machine ou l'objet à cet instant.BadNotImplementedUn service ou une opération défini dans la spécification et visible dans votre SDK renvoie le même refus à chaque tentative, sur chaque nœud, depuisBadNotSupportedUn service qui fonctionne avec les paramètres par défaut échoue dès que vous réglez une option, un filtre, un encodage ou un drapeau particulier.BadNothingToDoUn appel de service échoue instantanément sans aucun résultat par opération, généralement juste après un chargement de configuration ou une étape de filtrage dans le client.BadOutOfMemoryLes requêtes se mettent à échouer en charge alors que les plus petites passent encore, et le serveur peut récupérer de lui-même une fois que les clients se calment.BadResourceUnavailableUne partie de l'espace d'adressage fonctionne normalement tandis qu'une branche, un service ou un équipement échoue systématiquement, souvent à partirBadServiceUnsupportedUn appel précis échoue de façon identique à chaque fois depuis tous les clients, alors que les sessions, le browse et les lectures fonctionnent normalement.BadUnexpectedErrorUne opération échoue avec un statut qui ne dit rien de précis, parfois par intermittence, et le client n'a aucune information supplémentaire sur laquelle agir.

Uncertain 6

Good 6

Dernière vérification le 7 septembre 2026 par rapport à OPC UA 1.05.07. OPC UA Connect est une ressource pédagogique et n'est pas affiliée à l'OPC Foundation.

Téléchargement gratuit
Arbre de diagnostic des codes de statut OPC UA
Une référence de diagnostic de 15 pages qui regroupe tous les codes de statut normatifs par nature réelle du problème: avec la première action à mener pour chacun, et les quatre questions qui résolvent la plupart des pannes avant même d'avoir lu un seul code.
Obtenir l'arbre de diagnostic gratuit →
Gratuit, sans cours, sans connexion