You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: guides/Live-ImplementationGuide-BaRS/Home/Core/1-6-0/Error-Handling/Failure-Scenarios-1-1-x/Bundle-Processing.page.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,7 @@ Below is a simplified example of how how to handle the Transaction Integrity HTT
79
79
}
80
80
]
81
81
},
82
-
"diagnostics": "This message has been recognised as having already been successfully processed."
82
+
"diagnostics": "This message has been recognised as having already been successfully processed. Reference ID: ID-12345"
83
83
}
84
84
]
85
85
}
@@ -198,7 +198,7 @@ if (Message == "update")
198
198
}
199
199
]
200
200
},
201
-
"diagnostics": "Information received has been updated locally and may cause loss, or presents a conflict, of data"
201
+
"diagnostics": "Information received has been updated locally and may cause loss, or presents a conflict, of data. Reference ID: ID-12345"
When a message is received, the X-Request-ID and X-Correlation-ID header values are stored appropriately. In this example, this occurs ahead of the message being processed but after any access control is applied by means of the other available headers.
8
8
9
-
If a message fails due to a message with the same header ids having already been processed, the response must be a 409, REC_CONFLICT with an OperationOutcome.issue.code of 'duplicate' as seen below.
9
+
If a message fails due to a message with the same header ids having already been processed, the response must be a 409, REC_CONFLICT with an OperationOutcome.issue.code of 'duplicate' as seen below. In the event that the request resulted in a new unique identifier on the receiver system, the receiver must return the reference ID as part of the OperationOutcome.issue.diagnostics.
10
10
11
11

12
12
@@ -114,7 +114,7 @@ If a message fails due to a message with the same header ids having already been
114
114
115
115
},
116
116
117
-
"diagnostics": "This message has already been received and processed"
117
+
"diagnostics": "This message has already been received and processed. Reference ID: ID-12345"
118
118
119
119
}
120
120
@@ -124,7 +124,7 @@ If a message fails due to a message with the same header ids having already been
124
124
125
125
</json>
126
126
127
-
In the event of a timeout, a retry attempt is made after a suitable amount of time to ensure the message was received. The same X-Request-ID and X-Correlation-ID must be used. Should a 409 REC_CONFLICT response be received with a OperationOutcome.issue.code of "duplicate", then this can be used as confirmation that the message was received.
127
+
In the event of a timeout, a retry attempt should be made to ensure the message was received. Senders should wait a suitable amount of time before attempting a retry to allow the receiver to finish processing the original message. The same X-Request-ID and X-Correlation-ID must be used. Should a 409 REC_CONFLICT response be received with a OperationOutcome.issue.code of "duplicate", then this can be used as confirmation that the message was received. In the event that the request resulted in a new unique identifier on the receiver system, the receiver must return the reference ID as part of the OperationOutcome.issue.diagnostics.
128
128
129
129

130
130
@@ -231,7 +231,7 @@ In the event of a timeout, a retry attempt is made after a suitable amount of ti
231
231
232
232
},
233
233
234
-
"diagnostics": "This message has already been received and processed"
234
+
"diagnostics": "This message has already been received and processed. Reference ID: ID-12345"
235
235
236
236
}
237
237
@@ -241,7 +241,7 @@ In the event of a timeout, a retry attempt is made after a suitable amount of ti
241
241
242
242
</json>
243
243
244
-
If the processing of a message is not completed prior to the initial retry, the receiver must respond with a 425 REC_TOO_EARLY response, to indicate the initial message is still processing. The receipt is then unconfirmed and the sender can retry after a suitable amount of time until they receive a desired response.
244
+
If the processing of a message is not completed prior to the initial retry, the receiver must respond with a 425 REC_TOO_EARLY response, to indicate the initial message is still processing. The receipt is then unconfirmed and the sender should retry until they receive a desired response. Senders must wait a suitable amount of time in between retry attempts to provide time for the receiver to finish processing the original message.
245
245
246
246

247
247
@@ -404,7 +404,7 @@ If the processing of a message is not completed prior to the initial retry, the
404
404
405
405
},
406
406
407
-
"diagnostics": "This message has already been received and processed"
407
+
"diagnostics": "This message has already been received and processed. Reference ID: ID-12345"
Copy file name to clipboardExpand all lines: guides/Live-ImplementationGuide-BaRS/Home/Core/1-6-0/Transactional-integrity/Receiver-responsibilities.page.md
- return the X-Request-ID and X-Correlation-ID in responses at ALL times, where possible
8
8
- reject any message with no X-Request-ID and X-Correlation-ID, without exception with REC_BAD_REQUEST (400)
9
9
- in the event that a duplicate message that has already been correctly processed is received, return a response with REC_CONFLICT (409) and an operationOutcome.issue.code of "duplicate"
10
+
- in the event of the above point, if the duplicate message is received that has already been correctly processed, and this message resulted in a record with a new unique identifier on the receiver side, a reference to the new unique identifier must be returned as part of the operationOutcome.issue.diagnostics.
10
11
- this combination of codes can only be used in a duplicate message scenario
Copy file name to clipboardExpand all lines: guides/Live-ImplementationGuide-BaRS/Home/Core/1-6-0/Transactional-integrity/Sender-responsibilities.page.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,8 +23,9 @@ The frequency of retries and the duration of a retry period depends on the scena
23
23
- do not retry a request again if a response with the following attributes is received, this indicates the message was successfully sent
24
24
- REC_CONFLICT (409)
25
25
- an operationOutcome.issue.code of "duplicate"
26
+
- In the event that the original message resulted in a new unique identifier on the receiver, the receiver may return a reference to the new unique identifier as part of the operationOutcome.issue.diagnostics. In this case, the sender may extract the reference to the receiver ID and update their own records, if appropriate.
26
27
27
-
Any intermediary network device responding 'on behalf or in lieu' of the API or the receiver is not likely to respond with an OperationOutcome or the required X-Request-ID and X-Correlation-ID. Any response not having either one of these properties can be safely deemed a communications failure, a temporary interruption to connectivity or could potentially indicate a service outage. Any of these scenarios could, but not always, warrant a retry. This would be at the discretion of the suppliers however these failed interactions should be logged with as much detail as possible. Errors outside of the HTTP standard should also be logged locally with as much detail as possible, for example; Transport-Layer error messages.
28
+
Any intermediary network device responding 'on behalf or in lieu' of the API or the receiver is not likely to respond with an OperationOutcome or the required X-Request-ID and X-Correlation-ID. Any response not having either one of these properties can be safely deemed a communications failure, a temporary interruption to connectivity or could potentially indicate a service outage. Any of these scenarios could, but not always, warrant a retry. This would be at the discretion of the suppliers. However, these failed interactions should be logged with as much detail as possible. In the event of a retry, the sender should wait an appropriate amount of time between retry attempts to allow receivers to finish processing, or give room for intermediate transport-level issues to resolve and recover. Errors outside of the HTTP standard should also be logged locally with as much detail as possible, for example; Transport-Layer error messages.
0 commit comments