When a fatal error occurs, the Servershall send an Error Messageto the Client and closes the TransportConnectiongracefully. When the Clientreceives an Error Messageit reports the error to the application and closes the TransportConnectiongracefully. If a Clientencounters a fatal error, it shall report the error to the application and send a CloseSecureChannel Message. The Server shall close the TransportConnectiongracefully when it receives the CloseSecureChannel Message.

The possible OPC UA Connection Protocol errors are defined in Table 70.

Table 70– OPC UA Connection Protocolerror codes

Name

Description

Bad_TcpServerTooBusy

The Servercannot process the request because it is too busy.

It is up to the Serverto determine when it needs to return this Message.

A Servercan control the how frequently a Clientreconnects by waiting to return this error.

Bad_TcpMessageTypeInvalid

The type of the Messagespecified in the header invalid.

Each Messagestarts with a 4-byte sequence of ASCII values that identifies the Messagetype.

The Serverreturns this error if the Messagetype is not accepted.

Some of the Messagetypes are defined by the SecureChannellayer.

Bad_TcpSecureChannelUnknown

The SecureChannelId and/or TokenId are not currently in use.

This error is reported by the SecureChannellayer.

Bad_TcpMessageTooLarge

The size of the MessageChunkspecified in the header is too large.

The Serverreturns this error if the MessageChunksize exceeds its maximum buffer size or the receive buffer size negotiated during the Hello/Acknowledge exchange.

Bad_Timeout

A timeout occurred while accessing a resource.

It is up to the Serverto determine when a timeout occurs.

Bad_TcpNotEnoughResources

There are not enough resources to process the request.

The Serverreturns this error when it runs out of memory or encounters similar resource problems.

A Servercan control the how frequently a Clientreconnects by waiting to return this error.

Bad_TcpInternalError

An internal error occurred.

This should only be returned if an unexpected configuration or programming error occurs.

Bad_TcpEndpointUrlInvalid

The Serverdoes not recognize the EndpointUrl specified.

Bad_SecurityChecksFailed

The Messagewas rejected because it could not be verified.

Bad_RequestInterrupted

The request could not be sent because of a network interruption.

Bad_RequestTimeout

Timeout occurred while processing the request.

Bad_SecureChannelClosed

The secure channel has been closed.

Bad_SecureChannelTokenUnknown

The SecurityTokenhas expired or is not recognized.

Bad_CertificateUntrusted

The sender Certificateis not trusted by the receiver.

Bad_CertificateTimeInvalid

The sender Certificatehas expired or is not yet valid.

Bad_CertificateIssuerTimeInvalid

The issuer for the sender Certificatehas expired or is not yet valid.

Bad_CertificateUseNotAllowed

The sender’s Certificatemay not be used for establishing a secure channel.

Bad_CertificateIssuerUseNotAllowed

The issuer Certificatemay not be used as a CertificateAuthority.

Bad_CertificateRevocationUnknown

Could not verify the revocation status of the sender’s Certificate.

Bad_CertificateIssuerRevocationUnknown

Could not verify the revocation status of the issuer Certificate.

Bad_CertificateRevoked

The sender Certificatehas been revoked by the issuer.

Bad_IssuerCertificateRevoked

The issuer Certificatehas been revoked by its issuer.

Bad_SequenceNumberInvalid

The sequence number on the message was not valid.

The numeric values for these error codes are defined in A.2.

NOTE: The ‘Tcp’ prefix for some of the error codes in Table 70was chosen when TCP/IP was the only implementation of the OPC UA Connection Protocol. These codes are used with any implementation of the OPC UA Connection Protocol.