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

  1. 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.
  2. 2Step 2: Diagnose - Verify distribution ID format: CloudFront distribution IDs start with 'E' followed by alphanumeric characters (e.g., E1234567890ABC). Verify format matches.
  3. 3Step 3: Diagnose - Check distribution status: aws cloudfront get-distribution --id DIST_ID --query 'Distribution.Status' --output text. If error, distribution doesn't exist.
  4. 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.
  5. 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
26fi
Verify 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"
28fi
Check 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.

CloudFrontNoSuchDistribution - CloudFront No Such Distribution | AWS Error Reference | Error Code Reference