Single-retry PersistedQueryNotFound as well
This commit is contained in:
1 parent
1f49ee92c7
commit
689afdddbe
1 file changed
+15
-8
@@ -1353,8 +1353,8 @@ class Twitch:
|
|||||||
) -> JsonType | list[JsonType]:
|
) -> JsonType | list[JsonType]:
|
||||||
gql_logger.debug(f"GQL Request: {ops}")
|
gql_logger.debug(f"GQL Request: {ops}")
|
||||||
backoff = ExponentialBackoff(maximum=60)
|
backoff = ExponentialBackoff(maximum=60)
|
||||||
# Use a flag to retry the request a single time, if a "service error" is encountered
|
# Use a flag to retry the request a single time, if a specific set of errors is encountered
|
||||||
service_error_retry: bool = True
|
single_retry: bool = True
|
||||||
for delay in backoff:
|
for delay in backoff:
|
||||||
async with self._qgl_limiter:
|
async with self._qgl_limiter:
|
||||||
auth_state = await self.get_auth()
|
auth_state = await self.get_auth()
|
||||||
@@ -1377,20 +1377,27 @@ class Twitch:
|
|||||||
if "errors" in response_json:
|
if "errors" in response_json:
|
||||||
for error_dict in response_json["errors"]:
|
for error_dict in response_json["errors"]:
|
||||||
if "message" in error_dict:
|
if "message" in error_dict:
|
||||||
if error_dict["message"] == "service error" and service_error_retry:
|
if (
|
||||||
|
single_retry
|
||||||
|
and error_dict["message"] in (
|
||||||
|
"service error"
|
||||||
|
"PersistedQueryNotFound"
|
||||||
|
)
|
||||||
|
):
|
||||||
logger.error(
|
logger.error(
|
||||||
"Retrying a \"service error\" for "
|
f"Retrying a {error_dict['message']} for "
|
||||||
f"{response_json['extensions']['operationName']}"
|
f"{response_json['extensions']['operationName']}"
|
||||||
)
|
)
|
||||||
service_error_retry = False
|
single_retry = False
|
||||||
delay = 5 # overwrite delay
|
if delay < 5:
|
||||||
|
# overwrite the delay if too short
|
||||||
|
delay = 5
|
||||||
force_retry = True
|
force_retry = True
|
||||||
break
|
break
|
||||||
elif (
|
elif (
|
||||||
error_dict["message"] in (
|
error_dict["message"] in (
|
||||||
# "server error",
|
|
||||||
"service unavailable",
|
|
||||||
"service timeout",
|
"service timeout",
|
||||||
|
"service unavailable",
|
||||||
"context deadline exceeded",
|
"context deadline exceeded",
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
|
|||||||
Reference in new issue
Block a user