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
- 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.
- 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.
- 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.
- 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.
- 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
29fiCheck 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
28doneCopy 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.