Fix Terraform Kinesis Stream - ResourceInUseException
Fix AWS Kinesis stream name conflict errors in Terraform. Handle duplicate streams, import existing resources, shard count changes, and stream modes.
Troubleshooting
Fix AWS Secrets Manager duplicate secret errors in Terraform. Handle secret recovery windows, force deletion, naming conventions, and secret restoration.
A secret with the same name already exists, or was recently deleted and is in its recovery window (7-30 days by default). Import the existing secret, force-delete the old one with recovery_window_in_days = 0, or use a different name.
Error: creating Secrets Manager Secret (myapp/db-password):
ResourceExistsException: The operation failed because the secret
myapp/db-password already exists.# Check if secret exists
aws secretsmanager describe-secret --secret-id myapp/db-password
# Import using the secret ARN or name
terraform import aws_secretsmanager_secret.db_password myapp/db-password# Check if the secret is scheduled for deletion
aws secretsmanager describe-secret --secret-id myapp/db-password \
--query '{Name:Name,DeletedDate:DeletedDate}'
# Force immediate deletion (no recovery)
aws secretsmanager delete-secret \
--secret-id myapp/db-password \
--force-delete-without-recovery
# Wait a moment, then apply
sleep 5
terraform apply# If the secret was accidentally deleted, restore it
aws secretsmanager restore-secret --secret-id myapp/db-password
# Then import into Terraform
terraform import aws_secretsmanager_secret.db_password myapp/db-passwordresource "aws_secretsmanager_secret" "db_password" {
name = "${var.project}/${var.environment}/db-password"
recovery_window_in_days = 0 # Immediate deletion — no recovery window
tags = {
Environment = var.environment
ManagedBy = "terraform"
}
}
resource "aws_secretsmanager_secret_version" "db_password" {
secret_id = aws_secretsmanager_secret.db_password.id
secret_string = random_password.db.result
}resource "aws_secretsmanager_secret" "db_password" {
name = "${var.project}/${var.environment}/${var.region}/db-password"
# e.g., myapp/prod/us-east-1/db-password
}aws secretsmanager describe-secret)project/env/secret-name prevents collisionsrecovery_window_in_days = 0 for dev/test environmentsManagedBy = "terraform" for easy identificationSecrets Manager holds deleted secrets during a recovery window, blocking creation of new secrets with the same name. Force-delete with --force-delete-without-recovery for dev environments, or import existing secrets into Terraform. Use path-based naming conventions to avoid collisions.
Fix AWS Kinesis stream name conflict errors in Terraform. Handle duplicate streams, import existing resources, shard count changes, and stream modes.
Fix AWS MSK cluster throttling errors in Terraform. Handle API rate limits, retry configuration, reduce parallelism, and manage long cluster creation times.
Fix ElastiCache cluster name conflicts in Terraform. Import existing clusters, use unique naming conventions, and handle replication group configurations.
Fix AWS Step Functions duplicate state machine errors in Terraform. Covers naming conflicts, import, definition updates, and versioning patterns.