From 87b01b77d8120469e55caf2b2cb02a826493f582 Mon Sep 17 00:00:00 2001 From: derrod Date: Wed, 14 Dec 2022 16:16:21 +0100 Subject: [PATCH] [api] Handle "corrective action" errors on login --- legendary/api/egs.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/legendary/api/egs.py b/legendary/api/egs.py index ad23ff2..1f9dd87 100644 --- a/legendary/api/egs.py +++ b/legendary/api/egs.py @@ -121,8 +121,12 @@ class EPCAPI: r.raise_for_status() j = r.json() - if 'error' in j: - self.log.warning(f'Login to EGS API failed with errorCode: {j["errorCode"]}') + if 'errorCode' in j: + if j['errorCode'] == 'errors.com.epicgames.oauth.corrective_action_required': + self.log.error(f'{j["errorMessage"]} ({j["correctiveAction"]}), ' + f'open the following URL to take action: {j["continuationUrl"]}') + else: + self.log.error(f'Login to EGS API failed with errorCode: {j["errorCode"]}') raise InvalidCredentialsError(j['errorCode']) elif r.status_code >= 400: self.log.error(f'EGS API responded with status {r.status_code} but no error in response: {j}')