diff options
| -rw-r--r-- | packages/backend/src/server/api/ApiCallService.ts | 1 | ||||
| -rw-r--r-- | packages/frontend/src/account.ts | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/ApiCallService.ts b/packages/backend/src/server/api/ApiCallService.ts index c6c33f7303..974be7e4e1 100644 --- a/packages/backend/src/server/api/ApiCallService.ts +++ b/packages/backend/src/server/api/ApiCallService.ts @@ -340,6 +340,7 @@ export class ApiCallService implements OnApplicationShutdown { code: 'RATE_LIMIT_EXCEEDED', id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', httpStatusCode: 429, + info, }); } } diff --git a/packages/frontend/src/account.ts b/packages/frontend/src/account.ts index e3416f2c29..f0a464084f 100644 --- a/packages/frontend/src/account.ts +++ b/packages/frontend/src/account.ts @@ -147,6 +147,13 @@ function fetchAccount(token: string, id?: string, forceShowDialog?: boolean): Pr text: i18n.ts.tokenRevokedDescription, }); } + } else if (res.error.id === 'd5826d14-3982-4d2e-8011-b9e9f02499ef') { + // rate limited + const timeToWait = res.error.info?.resetMs ?? 1000; + window.setTimeout(timeToWait, () => { + fetchAccount(token, id, forceShowDialog).then(done, fail); + }); + return; } else { await alert({ type: 'error', |