AWS
OptInRequired - Opt In Required
Getting an **OptInRequired** error means you need to opt in to an AWS service or feature before using it—some AWS services require explicit opt-in, especially new regions, Local Zones, Wavelength Zones, or certain features. This client-side error (4xx) happens when AWS requires explicit acceptance. Most common when using new AWS regions, but also appears when Local Zones require opt-in, Wavelength Zones need activation, certain features require acceptance, or service agreements haven't been completed.
#Common Causes
- →Identity: IAM permissions allow but opt-in not completed. Service Control Policy (SCP) requires opt-in. Account-level opt-in restrictions.
- →Network: New region opt-in required. Local Zone opt-in required. Wavelength Zone opt-in required.
- →Limits: Service opt-in not completed. Feature not enabled. Service agreement not accepted. Terms of service not agreed.
✓Solutions
- 1Step 1: Diagnose - Check which service/region requires opt-in: Review error message for specific service or region. Check if it's a new region, Local Zone, or Wavelength Zone.
- 2Step 2: Diagnose - Check opt-in status: For EC2 Local Zones: aws ec2 describe-availability-zones --filters "Name=opt-in-status,Values=opted-in" --query 'AvailabilityZones[*].ZoneName' --output table. Check which zones require opt-in.
- 3Step 3: Diagnose - Verify account status: aws sts get-caller-identity. Check if account can opt in. Verify billing/payment method is active.
- 4Step 4: Fix - Opt in to Local Zone: aws ec2 modify-availability-zone-group --group-name ZONE_GROUP_NAME --opt-in-status opted-in. Verify: aws ec2 describe-availability-zones --zone-names ZONE_NAME.
- 5Step 5: Fix - Opt in to new region: Visit AWS Console > Account Settings > Regions. Enable the region. Or use AWS CLI if supported. Accept terms of service if prompted.
</>Code Examples
Check Opt-In Status for Availability Zones
1#!/bin/bash
2# Check which zones require opt-in
3echo "=== Availability Zones Requiring Opt-In ==="
4aws ec2 describe-availability-zones \
5 --filters "Name=opt-in-status,Values=not-opted-in" \
6 --query 'AvailabilityZones[*].[ZoneName,ZoneId,OptInStatus]' \
7 --output table
8
9# Check opted-in zones
10echo "\n=== Already Opted-In Zones ==="
11aws ec2 describe-availability-zones \
12 --filters "Name=opt-in-status,Values=opted-in" \
13 --query 'AvailabilityZones[*].[ZoneName,ZoneId]' \
14 --output table
15
16# List all zones with opt-in status
17echo "\n=== All Zones with Opt-In Status ==="
18aws ec2 describe-availability-zones \
19 --query 'AvailabilityZones[*].[ZoneName,OptInStatus,RegionName]' \
20 --output tableOpt In to Local Zone or Wavelength Zone
1#!/bin/bash
2# Opt in to Local Zone
3ZONE_GROUP_NAME="us-east-1-wl1-nyc-wlz-1" # Replace with your zone group
4
5echo "=== Opting In to Zone Group: ${ZONE_GROUP_NAME} ==="
6aws ec2 modify-availability-zone-group \
7 --group-name ${ZONE_GROUP_NAME} \
8 --opt-in-status opted-in
9
10# Verify opt-in status
11echo "\n=== Verifying Opt-In Status ==="
12aws ec2 describe-availability-zones \
13 --zone-names ${ZONE_GROUP_NAME} \
14 --query 'AvailabilityZones[*].[ZoneName,OptInStatus]' \
15 --output table
16
17# Note: Some zones may require console opt-in
18echo "\n=== Note ==="
19echo "Some zones require opt-in via AWS Console:"
20echo "1. Go to EC2 Console > Settings > Zones"
21echo "2. Enable the zone"
22echo "3. Accept terms of service"Check Account Status and Opt-In Eligibility
1#!/bin/bash
2# Check account identity
3echo "=== Account Identity ==="
4aws sts get-caller-identity --output table
5
6# Check if account can opt in (requires valid payment method)
7echo "\n=== Account Status ==="
8echo "Opt-in requires:"
9echo "1. Valid payment method on file"
10echo "2. Account in good standing"
11echo "3. Terms of service accepted"
12
13# Check for account issues
14echo "\n=== Checking for Account Issues ==="
15aws support describe-cases \
16 --include-resolved-cases \
17 --max-results 5 \
18 --query 'cases[*].[caseId,status,subject]' \
19 --output table 2>&1 | head -5 || echo "No support cases or access denied"
20
21# Note: Some opt-ins require console
22echo "\n=== Opt-In Methods ==="
23echo "1. AWS CLI (for Local Zones/Wavelength Zones)"
24echo "2. AWS Console (for new regions and some features)"
25echo "3. Contact AWS Support (for special cases)"↗Related Errors
Provider Information
This error code is specific to AWS services. For more information, refer to the official AWS documentation.