Skip to content

Commit 35a0fdd

Browse files
authored
Merge pull request #799 from LockTar/f/fix-409-PessimisticConcurrencyConflict-error
Fix 'PessimisticConcurrencyConflict' next to 'Conflict' error codes
2 parents bf11787 + 6fc607c commit 35a0fdd

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

tools/code/common/Http.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ private static bool ShouldRetryInner(HttpMessage message, Exception? exception)
402402
(message, exception) switch
403403
{
404404
({ Response.Status: 422 or 409 }, _) when HasManagementApiRequestFailedError(message.Response) => true,
405-
({ Response.Status: 409 }, _) when HasConflictError(message.Response) && HasOperationOnTheApiIsInProgressMessage(message.Response) => true,
405+
({ Response.Status: 409 }, _) when HasConflictOrPessimisticConcurrencyConflictError(message.Response) && HasOperationOnTheApiIsInProgressMessage(message.Response) => true,
406406
({ Response.Status: 412 }, _) => true,
407407
({ Response.Status: 429 }, _) => true,
408408
_ => false
@@ -419,9 +419,12 @@ private static bool HasManagementApiRequestFailedError(Response response) =>
419419
.Where(code => code.Equals("ManagementApiRequestFailed", StringComparison.OrdinalIgnoreCase))
420420
.IsSome;
421421

422-
private static bool HasConflictError(Response response) =>
422+
private static bool HasConflictOrPessimisticConcurrencyConflictError(Response response) =>
423423
TryGetErrorCode(response)
424-
.Where(code => code.Equals("Conflict", StringComparison.OrdinalIgnoreCase))
424+
.Where(code =>
425+
code.Equals("Conflict", StringComparison.OrdinalIgnoreCase) ||
426+
code.Equals("PessimisticConcurrencyConflict", StringComparison.OrdinalIgnoreCase)
427+
)
425428
.IsSome;
426429

427430
private static bool HasOperationOnTheApiIsInProgressMessage(Response response) =>

0 commit comments

Comments
 (0)