AWS

EC2InvalidSnapshotNotFound - EC2 Invalid Snapshot Not Found

Getting an **EC2InvalidSnapshotNotFound** error means the EBS snapshot ID you specified doesn't exist or isn't available—the snapshot might have been deleted, is in a different region, or isn't shared with your account. This client-side error (4xx) happens when AWS validates EBS snapshot existence. Most common when snapshot IDs are incorrect, but also appears when snapshots have been deleted, snapshots are in different regions, incorrect snapshot ID formats are used, or snapshots aren't shared with your account.

#Common Causes

  • Identity: IAM policy allows EC2 access but snapshot doesn't exist. Service Control Policy (SCP) restricts snapshot access.
  • Network: VPC endpoint EC2 snapshot restrictions. Cross-region snapshot access.
  • Limits: Snapshot ID does not exist. Snapshot has been deleted. Snapshot in different region. Incorrect snapshot ID format. Snapshot not shared with your account.

Solutions

  1. 1Step 1: Diagnose - List all snapshots: aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[*].[SnapshotId,State,VolumeSize,StartTime]' --output table. Check if snapshot ID is in the list.
  2. 2Step 2: Diagnose - Check snapshot in specific region: aws ec2 describe-snapshots --snapshot-ids snap-XXXXX --region REGION --query 'Snapshots[0].[SnapshotId,State]' --output table. Verify region is correct.
  3. 3Step 3: Diagnose - Search snapshots by volume ID: aws ec2 describe-snapshots --filters "Name=volume-id,Values=vol-XXXXX" --query 'Snapshots[*].[SnapshotId,State]' --output table. Find snapshots for specific volume.
  4. 4Step 4: Fix - Use correct snapshot ID: Verify snapshot ID from list. Check for typos. Use exact snapshot ID (case-sensitive). Verify snapshot ID format: snap-xxxxxxxxxxxxxxxxx.
  5. 5Step 5: Fix - Check snapshot sharing or copy to region: If snapshot is in different region, copy it: aws ec2 copy-snapshot --source-region SOURCE_REGION --source-snapshot-id snap-XXXXX --description "copied-snapshot". Or verify snapshot sharing permissions: aws ec2 describe-snapshot-attribute --snapshot-id snap-XXXXX --attribute createVolumePermission.

</>Code Examples

List All EBS Snapshots to Find Correct ID
1#!/bin/bash
2echo "=== All EBS Snapshots (Your Account) ==="
3aws ec2 describe-snapshots \
4  --owner-ids self \
5  --query 'Snapshots[*].[SnapshotId,State,VolumeSize,StartTime]' \
6  --output table
7
8# Search for specific snapshot
9SNAPSHOT_ID="snap-1234567890abcdef0"
10echo "\n=== Searching for Snapshot: ${SNAPSHOT_ID} ==="
11
12if aws ec2 describe-snapshots --snapshot-ids ${SNAPSHOT_ID} &>/dev/null; then
13  echo "✓ Snapshot exists"
14  
15  # Get snapshot details
16  echo "\n=== Snapshot Details ==="
17  aws ec2 describe-snapshots --snapshot-ids ${SNAPSHOT_ID} \
18    --query 'Snapshots[0].[SnapshotId,State,VolumeSize,StartTime]' \
19    --output table
20else
21  echo "✗ Snapshot not found (EC2InvalidSnapshotNotFound)"
22  
23  echo "\n=== Search by Volume ID ==="
24  VOLUME_ID="vol-1234567890abcdef0"
25  aws ec2 describe-snapshots \
26    --filters "Name=volume-id,Values=${VOLUME_ID}" \
27    --query 'Snapshots[*].[SnapshotId,State]' \
28    --output table
29fi
Check Snapshot Across Regions
1#!/bin/bash
2SNAPSHOT_ID="snap-1234567890abcdef0"
3REGIONS=("us-east-1" "us-west-2" "eu-west-1" "ap-southeast-1")
4
5echo "=== Checking Snapshot Across Regions ==="
6for REGION in "${REGIONS[@]}"; do
7  echo "\nChecking region: ${REGION}"
8  
9  RESULT=$(aws ec2 describe-snapshots \
10    --snapshot-ids ${SNAPSHOT_ID} \
11    --region ${REGION} \
12    --query 'Snapshots[0].SnapshotId' \
13    --output text 2>/dev/null)
14  
15  if [ ! -z "${RESULT}" ] && [ "${RESULT}" != "None" ]; then
16    echo "✓ Snapshot found in ${REGION}: ${RESULT}"
17    
18    # Get snapshot details
19    aws ec2 describe-snapshots \
20      --snapshot-ids ${SNAPSHOT_ID} \
21      --region ${REGION} \
22      --query 'Snapshots[0].[SnapshotId,State,VolumeSize]' \
23      --output table
24    break
25  else
26    echo "✗ Snapshot not found in ${REGION}"
27  fi
28done
Copy Snapshot to Current Region
1#!/bin/bash
2SOURCE_REGION="us-west-2"
3SOURCE_SNAPSHOT="snap-1234567890abcdef0"
4DEST_REGION="us-east-1"
5
6echo "=== Copying Snapshot to Current Region ==="
7echo "Source region: ${SOURCE_REGION}"
8echo "Source snapshot: ${SOURCE_SNAPSHOT}"
9echo "Destination region: ${DEST_REGION}"
10
11NEW_SNAPSHOT=$(aws ec2 copy-snapshot \
12  --source-region ${SOURCE_REGION} \
13  --source-snapshot-id ${SOURCE_SNAPSHOT} \
14  --description "Copied snapshot from ${SOURCE_REGION}" \
15  --region ${DEST_REGION} \
16  --query 'SnapshotId' \
17  --output text 2>&1)
18
19if [ $? -eq 0 ] && [ ! -z "${NEW_SNAPSHOT}" ]; then
20  echo "\n✓ Snapshot copy initiated: ${NEW_SNAPSHOT}"
21  echo "Check status: aws ec2 describe-snapshots --snapshot-ids ${NEW_SNAPSHOT} --region ${DEST_REGION}"
22else
23  echo "\n✗ Failed to copy snapshot"
24  echo "Error: ${NEW_SNAPSHOT}"
25  echo "Check snapshot sharing permissions or source snapshot existence"
26fi

Related Errors

Provider Information

This error code is specific to AWS services. For more information, refer to the official AWS documentation.

EC2InvalidSnapshotNotFound - EC2 Invalid Snapshot Not Found | AWS Error Reference | Error Code Reference