@@ -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