MessageChunks are sent as they are encoded. MessageChunks belonging to the same Message shall be sent sequentially. If an error occurs creating a MessageChunk then the sender shall send a final MessageChunk to the receiver that tells the receiver that an error occurred and that it should discard the previous chunks. The sender indicates that the MessageChunk contains an error by setting the IsFinal flag to ‘A’ (for Abort). Table 59 specifies the contents of the Message abort MessageChunk.
Table 59 – OPC UA Secure Conversation Message abort body
Name |
Data Type |
Description |
Error |
UInt32 |
The numeric code for the error. Possible values are listed in Table 74. |
Reason |
String |
A more verbose description of the error. This string shall not be more than 4 096 bytes. A Client shall ignore strings that are longer than this. Any security related information shall not be returned. This includes any indication of the reason that caused Bad_SecurityChecksFailed to be returned. |
The receiver shall check the security on the abort MessageChunk before processing it. If everything is ok, then the receiver shall ignore the Message but shall not close the SecureChannel. The Client shall report the error back to the application as StatusCode for the request. If the Client is the sender, then it shall report the error without waiting for a response from the Server.