AWS
EC2InvalidInstanceIDNotFound - EC2 Invalid Instance ID Not Found
Getting an **EC2InvalidInstanceIDNotFound** error means the EC2 instance ID you specified doesn't exist or has been terminated—the instance might be in a different region, was deleted, or the ID is misspelled. This client-side error (4xx) happens when AWS validates EC2 instance existence. Most common when instance IDs are incorrect, but also appears when instances have been terminated, instances are in different regions, instance ID formats are incorrect, or instance ID typos occur.
#Common Causes
- →Identity: IAM policy allows EC2 access but instance doesn't exist. Service Control Policy (SCP) restricts instance access.
- →Network: VPC endpoint EC2 instance restrictions. Cross-region instance access.
- →Limits: Instance ID does not exist. Instance has been terminated. Instance in different region. Incorrect instance ID format. Instance ID typo.
✓Solutions
- 1Step 1: Diagnose - List all EC2 instances: aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType]' --output table. Check if instance ID is in the list.
- 2Step 2: Diagnose - Check instance in specific region: aws ec2 describe-instances --instance-ids i-XXXXX --region REGION --query 'Reservations[0].Instances[0].[InstanceId,State.Name]' --output table. Verify region is correct.
- 3Step 3: Diagnose - Search for similar instance IDs: List instances and search: aws ec2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text | grep PARTIAL_ID. Find correct instance ID.
- 4Step 4: Fix - Use correct instance ID: Verify instance ID from list. Check for typos. Use exact instance ID (case-sensitive). Verify instance ID format: i-xxxxxxxxxxxxxxxxx.
- 5Step 5: Fix - Check if instance was terminated: Review instance state: aws ec2 describe-instances --instance-ids i-XXXXX --query 'Reservations[0].Instances[0].State.Name' --output text. If terminated, instance no longer exists. Check CloudTrail logs for termination events.
</>Code Examples
List All EC2 Instances to Find Correct ID
1#!/bin/bash
2echo "=== All EC2 Instances ==="
3aws ec2 describe-instances \
4 --query 'Reservations[*].Instances[*].[InstanceId,State.Name,InstanceType,Tags[?Key==`Name`].Value|[0]]' \
5 --output table
6
7# Search for specific instance
8INSTANCE_ID="i-1234567890abcdef0"
9echo "\n=== Searching for Instance: ${INSTANCE_ID} ==="
10
11if aws ec2 describe-instances --instance-ids ${INSTANCE_ID} &>/dev/null; then
12 echo "✓ Instance exists"
13
14 # Get instance details
15 echo "\n=== Instance Details ==="
16 aws ec2 describe-instances \
17 --instance-ids ${INSTANCE_ID} \
18 --query 'Reservations[0].Instances[0].[InstanceId,State.Name,InstanceType,LaunchTime]' \
19 --output table
20else
21 echo "✗ Instance not found (EC2InvalidInstanceIDNotFound)"
22
23 echo "\n=== Similar Instance IDs ==="
24 aws ec2 describe-instances \
25 --query "Reservations[*].Instances[?contains(InstanceId, 'i-123')].[InstanceId,State.Name]" \
26 --output table
27fiCheck EC2 Instance Across Regions
1#!/bin/bash
2INSTANCE_ID="i-1234567890abcdef0"
3REGIONS=("us-east-1" "us-west-2" "eu-west-1" "ap-southeast-1")
4
5echo "=== Checking Instance Across Regions ==="
6for REGION in "${REGIONS[@]}"; do
7 echo "\nChecking region: ${REGION}"
8
9 RESULT=$(aws ec2 describe-instances \
10 --instance-ids ${INSTANCE_ID} \
11 --region ${REGION} \
12 --query 'Reservations[0].Instances[0].InstanceId' \
13 --output text 2>/dev/null)
14
15 if [ ! -z "${RESULT}" ] && [ "${RESULT}" != "None" ]; then
16 echo "✓ Instance found in ${REGION}: ${RESULT}"
17
18 # Get instance details
19 aws ec2 describe-instances \
20 --instance-ids ${INSTANCE_ID} \
21 --region ${REGION} \
22 --query 'Reservations[0].Instances[0].[InstanceId,State.Name,InstanceType]' \
23 --output table
24 break
25 else
26 echo "✗ Instance not found in ${REGION}"
27 fi
28doneCheck Instance State and Termination Status
1#!/bin/bash
2INSTANCE_ID="i-1234567890abcdef0"
3
4echo "=== Checking Instance State ==="
5INSTANCE_STATE=$(aws ec2 describe-instances \
6 --instance-ids ${INSTANCE_ID} \
7 --query 'Reservations[0].Instances[0].State.Name' \
8 --output text 2>&1)
9
10if [ $? -eq 0 ] && [ ! -z "${INSTANCE_STATE}" ]; then
11 echo "Instance state: ${INSTANCE_STATE}"
12
13 if [ "${INSTANCE_STATE}" = "terminated" ]; then
14 echo "✗ Instance has been terminated"
15 echo "Terminated instances no longer exist (EC2InvalidInstanceIDNotFound)"
16 elif [ "${INSTANCE_STATE}" = "running" ] || [ "${INSTANCE_STATE}" = "stopped" ]; then
17 echo "✓ Instance exists and is ${INSTANCE_STATE}"
18 else
19 echo "Instance state: ${INSTANCE_STATE}"
20 fi
21else
22 echo "✗ Instance not found (EC2InvalidInstanceIDNotFound)"
23 echo "Error: ${INSTANCE_STATE}"
24
25 echo "\n=== Check CloudTrail for Termination Events ==="
26 echo "aws cloudtrail lookup-events \"
27 echo " --lookup-attributes AttributeKey=EventName,AttributeValue=TerminateInstances"
28fi↗Related Errors
Provider Information
This error code is specific to AWS services. For more information, refer to the official AWS documentation.