Skip to main content
Prowler’s GCP Provider uses Google Cloud Python SDK’s integrated retry mechanism to automatically retry API calls when encountering rate limiting errors (HTTP 429).

Quick Configuration

Using Configuration File

Modify prowler/providers/gcp/config.py:

How It Works

  • Automatic Detection: Handles HTTP 429 and quota exceeded errors
  • Exponential Backoff: Each retry uses randomized exponential backoff
  • Centralized Config: All GCP services use the same retry configuration
  • Transparent: No additional code needed in services

Error Examples Handled

Implementation

Client-Level Configuration

Request-Level Configuration

Services with Retry Support

All major GCP services are covered:
  • Cloud Resource Manager, Compute Engine, IAM
  • BigQuery, KMS, Cloud Storage, Monitoring
  • DNS, Logging, Cloud SQL, GKE, API Keys, DataProc

Validation

Debug Logging

Check for Retry Messages

Expected Output

Testing in Real Environment

  1. Reduce API Quotas in GCP Console:
    • APIs & Services > Quotas
    • Reduce “Read requests per minute” for Compute Engine API
    • Reduce “Policy Read Requests per minute” for IAM API
  2. Run Prowler with debug logging
  3. Monitor logs for retry messages

Troubleshooting

If experiencing rate limiting:
  1. Use --gcp-retries-max-attempts flag to increase attempts
  2. Request quota increases from Google Cloud support
  3. Optimize scanning to reduce simultaneous API calls
  4. Verify retry functionality with debug logging

Official References