AWS

EC2InvalidParameterCombination - EC2 Invalid Parameter Combination

Getting an **EC2InvalidParameterCombination** error means the EC2 parameters you specified cannot be used together—some parameters are mutually exclusive, require specific combinations, or conflict with each other. This client-side error (4xx) happens when AWS validates EC2 parameter compatibility. Most common when mutually exclusive parameters are used together, but also appears when parameter combinations aren't supported, instance types are incompatible with parameters, network settings conflict, or storage configurations are invalid.

#Common Causes

  • Identity: IAM policy allows EC2 launch but invalid parameter combination. Service Control Policy (SCP) enforces parameter validation.
  • Network: VPC endpoint EC2 parameter restrictions. Conflicting network settings.
  • Limits: Mutually exclusive parameters used together. Parameter combination not supported. Incompatible instance type and parameters. Conflicting network settings. Invalid storage configuration.

Solutions

  1. 1Step 1: Diagnose - Check exact error message: AWS usually specifies which parameters conflict. Review error message for parameter names. Identify conflicting parameters.
  2. 2Step 2: Diagnose - Review parameter compatibility: Common conflicts: --security-groups and --security-group-ids (mutually exclusive). --subnet-id with --placement-group (may conflict). Check EC2 documentation.
  3. 3Step 3: Diagnose - Check instance type requirements: Verify instance type supports parameters: aws ec2 describe-instance-types --instance-types INSTANCE_TYPE. Check EBS optimization compatibility.
  4. 4Step 4: Fix - Remove conflicting parameters: Remove one of mutually exclusive parameters. Use --security-group-ids instead of --security-groups. Or use --security-groups instead of --security-group-ids.
  5. 5Step 5: Fix - Use supported parameter combinations: Review EC2 parameter documentation. Check instance type requirements. Verify network configuration is compatible. Use supported parameter combinations.

</>Code Examples

Validate EC2 Parameter Combinations
1#!/bin/bash
2echo "=== Validating EC2 Parameter Combinations ==="
3
4# Check for mutually exclusive parameters
5SECURITY_GROUPS=""
6SECURITY_GROUP_IDS="sg-12345678"
7
8if [ -n "${SECURITY_GROUPS}" ] && [ -n "${SECURITY_GROUP_IDS}" ]; then
9  echo "✗ Cannot use both --security-groups and --security-group-ids (EC2InvalidParameterCombination)"
10  echo "These parameters are mutually exclusive"
11  exit 1
12else
13  echo "✓ Security group parameters OK"
14fi
15
16# Check subnet and placement group
17SUBNET_ID="subnet-12345678"
18PLACEMENT_GROUP=""
19
20if [ -n "${SUBNET_ID}" ] && [ -n "${PLACEMENT_GROUP}" ]; then
21  echo "⚠ Placement group may not work with specific subnet"
22  echo "Consider removing one parameter"
23fi
24
25echo "\n=== Parameter Validation Complete ==="
Check Instance Type and EBS Optimization Compatibility
1#!/bin/bash
2INSTANCE_TYPE="t3.micro"
3EBS_OPTIMIZED="true"
4
5echo "=== Checking Instance Type Compatibility ==="
6echo "Instance type: ${INSTANCE_TYPE}"
7echo "EBS optimized: ${EBS_OPTIMIZED}"
8
9# Check if instance type supports EBS optimization
10if [ "${EBS_OPTIMIZED}" = "true" ]; then
11  # Some instance types don't support EBS optimization
12  if [[ ! "${INSTANCE_TYPE}" =~ ^(m5|c5|r5|m4|c4|r4|i3|x1) ]]; then
13    echo "⚠ EBS optimization may not be available for ${INSTANCE_TYPE}"
14    echo "This may cause EC2InvalidParameterCombination"
15    echo "Consider removing --ebs-optimized or using a different instance type"
16  else
17    echo "✓ Instance type supports EBS optimization"
18  fi
19fi
20
21# Check instance type capabilities
22echo "\n=== Instance Type Details ==="
23aws ec2 describe-instance-types \
24  --instance-types ${INSTANCE_TYPE} \
25  --query 'InstanceTypes[0].[InstanceType,EbsInfo.EbsOptimizedSupport]' \
26  --output table
Launch Instance with Validated Parameters
1#!/bin/bash
2echo "=== Launching EC2 Instance with Validated Parameters ==="
3
4# Validate parameters first
5SECURITY_GROUP_IDS="sg-12345678"
6SUBNET_ID="subnet-12345678"
7INSTANCE_TYPE="t3.medium"
8
9# Check for conflicts
10if [ -n "${SECURITY_GROUP_IDS}" ]; then
11  echo "Using --security-group-ids: ${SECURITY_GROUP_IDS}"
12  echo "✓ Not using --security-groups (avoid conflict)"
13fi
14
15echo "\n=== Launching Instance ==="
16aws ec2 run-instances \
17  --image-id ami-12345678 \
18  --instance-type ${INSTANCE_TYPE} \
19  --subnet-id ${SUBNET_ID} \
20  --security-group-ids ${SECURITY_GROUP_IDS} \
21  --key-name my-key-pair \
22  --count 1 \
23  --output json
24
25if [ $? -eq 0 ]; then
26  echo "\n✓ Instance launched successfully"
27else
28  echo "\n✗ Launch failed - check for EC2InvalidParameterCombination"
29  echo "Review parameter combinations and try again"
30fi

Related Errors

Provider Information

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

EC2InvalidParameterCombination - EC2 Invalid Parameter Combination | AWS Error Reference | Error Code Reference