@forge/cli

13.2.0-next.4-experimental-c6a391613.2.0-next.6-experimental-a1600ff
out/installations/graphql-client.js
~out/installations/graphql-client.jsModified
+4
Index: package/out/installations/graphql-client.js
===================================================================
--- package/out/installations/graphql-client.js
+++ package/out/installations/graphql-client.js
@@ -369,8 +369,9 @@
     handleFailedInstallOrUpgrade(result, hasMajorVersion, environment, environmentType) {
         const { errors, requestId } = result;
         const error = errors?.[0];
         const statusCode = error?.extensions?.statusCode;
+        const isRateLimited = statusCode === 429;
         const isUserError = statusCode && statusCode >= 400 && statusCode < 500 ? true : false;
         const code = error?.extensions?.errorType ?? undefined;
         if (code === ALREADY_INSTALLED_CODE) {
             throw new AlreadyInstalledError(requestId, statusCode ?? undefined, hasMajorVersion, environment, environmentType);
@@ -380,8 +381,11 @@
         }
         if (error && requestId) {
             error.message = cli_shared_1.Text.install.error.appendRequestIdToErrorMessage(error.message ?? undefined, requestId);
         }
+        if (error && isRateLimited) {
+            error.message = [error.message, cli_shared_1.Text.install.error.tooManyRequests].filter(Boolean).join('. ');
+        }
         throw new InstallationRequestFailedError(isUserError, code, (0, harmonized_app_installation_errors_1.expandHarmonizedAppInstallationError)(code, error?.message ?? undefined), requestId);
     }
     async uninstallApp(input) {
         const query = `