File tree 2 files changed +9
-4
lines changed
2 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -123,9 +123,11 @@ GitLab server can sometimes return a transient HTTP error.
123
123
python-gitlab can automatically retry in such case, when
124
124
``retry_transient_errors `` argument is set to ``True ``. When enabled,
125
125
HTTP error codes 500 (Internal Server Error), 502 (502 Bad Gateway),
126
- 503 (Service Unavailable), and 504 (Gateway Timeout) are retried. It will retry until reaching
127
- the ``max_retries `` value. By default, ``retry_transient_errors `` is set to ``False `` and an exception
128
- is raised for these errors.
126
+ 503 (Service Unavailable), and 504 (Gateway Timeout) are retried.
127
+ Additionally the HTTP error code 409 (Conflict) is retried if the text message
128
+ mentions "Resource lock". It will retry until reaching the ``max_retries ``
129
+ value. By default, ``retry_transient_errors `` is set to ``False `` and an
130
+ exception is raised for these errors.
129
131
130
132
.. code-block :: python
131
133
Original file line number Diff line number Diff line change @@ -752,7 +752,10 @@ def http_request(
752
752
return result .response
753
753
754
754
if (429 == result .status_code and obey_rate_limit ) or (
755
- result .status_code in gitlab .const .RETRYABLE_TRANSIENT_ERROR_CODES
755
+ (
756
+ result .status_code in gitlab .const .RETRYABLE_TRANSIENT_ERROR_CODES
757
+ or (result .status_code == 409 and "Resource lock" in result .reason )
758
+ )
756
759
and retry_transient_errors
757
760
):
758
761
# Response headers documentation:
You can’t perform that action at this time.
0 commit comments