AWS
CloudFrontNoSuchDistribution - CloudFront No Such Distribution
Getting a **CloudFrontNoSuchDistribution** error means the CloudFront distribution ID you specified doesn't exist—the distribution might have been deleted, the ID is misspelled, or it's in a different AWS account. This client-side error (4xx) happens when AWS validates CloudFront distribution existence. Most common when distribution IDs are incorrect, but also appears when distributions have been deleted, incorrect distribution ID formats are used, distribution ID typos occur, or distributions are in different accounts.
#Common Causes
- →Identity: IAM policy allows CloudFront but distribution doesn't exist. Service Control Policy (SCP) restricts distribution access.
- →Network: VPC endpoint CloudFront restrictions. Cross-account distribution access.
- →Limits: Distribution ID does not exist. Distribution has been deleted. Incorrect distribution ID format. Distribution ID typo. Distribution in different account.
✓Solutions
- 1Step 1: Diagnose - List all CloudFront distributions: aws cloudfront list-distributions --query 'DistributionList.Items[*].[Id,Status,DomainName]' --output table. Check if distribution ID is in the list.
- 2Step 2: Diagnose - Verify distribution ID format: CloudFront distribution IDs start with 'E' followed by alphanumeric characters (e.g., E1234567890ABC). Verify format matches.
- 3Step 3: Diagnose - Check distribution status: aws cloudfront get-distribution --id DIST_ID --query 'Distribution.Status' --output text. If error, distribution doesn't exist.
- 4Step 4: Fix - Use correct distribution ID: Verify distribution ID from list. Check for typos. Use exact distribution ID (case-sensitive). Verify distribution exists in your account.
- 5Step 5: Fix - Check if distribution was deleted: Review CloudTrail logs: aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteDistribution. Or check distribution status in different regions.
</>Code Examples
List All CloudFront Distributions to Find Correct ID
1#!/bin/bash
2echo "=== All CloudFront Distributions ==="
3aws cloudfront list-distributions \
4 --query 'DistributionList.Items[*].[Id,Status,DomainName]' \
5 --output table
6
7# Search for specific distribution
8DIST_ID="E1234567890ABC"
9echo "\n=== Searching for Distribution: ${DIST_ID} ==="
10
11if aws cloudfront get-distribution --id ${DIST_ID} &>/dev/null; then
12 echo "✓ Distribution exists"
13
14 # Get distribution details
15 echo "\n=== Distribution Details ==="
16 aws cloudfront get-distribution --id ${DIST_ID} \
17 --query 'Distribution.[Id,Status,DomainName]' \
18 --output table
19else
20 echo "✗ Distribution not found (CloudFrontNoSuchDistribution)"
21
22 echo "\n=== Similar Distribution IDs ==="
23 aws cloudfront list-distributions \
24 --query "DistributionList.Items[?contains(Id, 'E123')].[Id,Status]" \
25 --output table
26fiVerify Distribution ID Format
1#!/bin/bash
2DIST_ID="E1234567890ABC"
3
4echo "=== Validating Distribution ID Format ==="
5echo "Distribution ID: ${DIST_ID}"
6
7# CloudFront distribution IDs start with 'E' followed by alphanumeric
8if [[ ${DIST_ID} =~ ^E[A-Z0-9]+$ ]]; then
9 echo "✓ Distribution ID format valid"
10
11 # Check if distribution exists
12 echo "\n=== Checking Distribution Exists ==="
13 DIST_INFO=$(aws cloudfront get-distribution \
14 --id ${DIST_ID} \
15 --query 'Distribution.[Id,Status]' \
16 --output table 2>&1)
17
18 if [ $? -eq 0 ]; then
19 echo "${DIST_INFO}"
20 else
21 echo "✗ Distribution not found (CloudFrontNoSuchDistribution)"
22 echo "Error: ${DIST_INFO}"
23 fi
24else
25 echo "✗ Invalid distribution ID format"
26 echo "Expected format: E followed by alphanumeric characters"
27 echo "Example: E1234567890ABC"
28fiCheck CloudTrail for Distribution Deletion Events
1#!/bin/bash
2DIST_ID="E1234567890ABC"
3
4echo "=== Checking CloudTrail for Distribution Events ==="
5
6# Check for deletion events
7echo "Searching for DeleteDistribution events..."
8aws cloudtrail lookup-events \
9 --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteDistribution \
10 --max-results 10 \
11 --query 'Events[*].[EventTime,CloudTrailEvent]' \
12 --output text | while read time event; do
13 DELETED_ID=$(echo "${event}" | jq -r '.requestParameters.id' 2>/dev/null)
14 if [ "${DELETED_ID}" = "${DIST_ID}" ]; then
15 echo "Found deletion event for ${DIST_ID} at ${time}"
16 fi
17 done 2>/dev/null || echo "Cannot check CloudTrail (distribution may not exist)"
18
19echo "\n=== Alternative: Check Distribution Directly ==="
20aws cloudfront get-distribution --id ${DIST_ID} 2>&1 | head -3↗Related Errors
Provider Information
This error code is specific to AWS services. For more information, refer to the official AWS documentation.