Error map
BucketNotEmpty: bucket you tried to delete is not empty Terraform: Error: deleting S3 Bucket (my-bucket): BucketNotEmpty: The bucket you tried to delete is not empty
Terraform · layer 6, Platform & cloud
Centre: this error. First ring: errors it is linked with (7). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.
Directly related (7)
Terraform: Error: Failed to get existing workspaces: S3 bucket "my-tf-state" does not exist / NoSuchBucket: The specified bucket does not exist
The S3 bucket configured as the state backend doesn't exist (or is in another region/account).
Terraform: Error: Invalid AWS Region: us-east-3 / Error: configuring Terraform AWS Provider: validating provider credentials: operation error STS: GetCallerIdentity
The `region` is invalid/unavailable, or the provider can't reach AWS endpoints to validate credentials.
Terraform: Error: Failed to load state: AccessDenied: Access Denied / Error refreshing state: AccessDenied status code: 403
Terraform can't read/write the S3 bucket (or DynamoDB table) that stores state — IAM permissions or wrong credentials/role.
Terraform: Error: deleting EC2 VPC (vpc-0abc): DependencyViolation: The vpc 'vpc-0abc' has dependencies and cannot be deleted
Destroy failed because something else still uses the resource (ENIs, subnets, gateways, security group rules).
Terraform: Error: Instance cannot be destroyed — Resource aws_db_instance.prod has lifecycle.prevent_destroy set, but the plan calls for this resource to be destroyed
The plan would destroy a resource protected with `lifecycle { prevent_destroy = true }`.
Terraform: Error: No valid credential sources found — failed to refresh cached credentials, no EC2 IMDS role found / Error: configuring Terraform AWS Provider: no valid credential sources
The AWS provider found no credentials (env vars, shared config, SSO, role, instance profile).
Terraform: Error: creating EC2 Instance: UnauthorizedOperation: You are not authorized to perform this operation. User: arn:aws:iam::123:user/ci is not authorized to perform: ec2:RunInstances
The IAM identity used by Terraform lacks a permission needed for that resource.
Two steps away (20)
Terraform: Error: Backend initialization required, please run "terraform init" — Reason: Initial configuration of the requested backend "s3"
Terraform needs `terraform init` to set up the backend (new directory, changed backend config, missing `.terraform`).
Terraform: Error: Backend configuration changed — A change in the backend configuration has been detected, which may require migrating existing state
The saved backend settings in `.terraform` differ from the current configuration.
Terraform: Error: Error acquiring the state lock: ResourceNotFoundException: Requested resource not found / failed to retrieve lock info
The S3 backend's `dynamodb_table` doesn't exist, so locking fails.
S3 PermanentRedirect: The bucket you are attempting to access must be addressed using the specified endpoint
The request went to the wrong S3 region/endpoint for that bucket.
InvalidKeyPair.NotFound: The key pair 'x' does not exist
The key pair name you passed doesn’t exist in that region (key pairs are regional).
InvalidAMIID.NotFound: The image id '[ami-xxxx]' does not exist
The AMI ID isn’t available in this region/account — AMI IDs are regional and private AMIs must be shared.
AccessDeniedException: User: arn:aws:iam::... is not authorized to perform: service:Action on resource: ...
The IAM user or role making the call has no permission for that action on that resource — the message names both.
Terraform: Error: Error acquiring the state lock — ConditionalCheckFailedException / state blob is already locked
Another Terraform run holds the state lock, or a previous run crashed and left the lock behind.
Terraform: Error: Output refers to sensitive values — a root module output containing sensitive data must be explicitly marked as sensitive
An output (or module output) exposes a value derived from a sensitive variable/attribute without `sensitive = true`.
Terraform: Error: Cycle: aws_security_group.a, aws_security_group.b
Resources reference each other (directly or indirectly), so Terraform can't order them.
Terraform: Error: waiting for RDS DB Instance create: timeout while waiting for state to become 'available' (last state: 'creating', timeout: 40m0s)
The resource didn't reach the target state before the provider's timeout.
Terraform: # aws_instance.web is tainted, so must be replaced — -/+ destroy and then create replacement
A previous apply failed during creation, so Terraform marked the resource tainted and will recreate it.
Terraform: Error: Moved object still exists — This statement declares a move from aws_x.old, but that resource instance is still declared at main.tf
A `moved` block points at an address that is still present in the configuration.
Terraform: Error: Provider configuration not present — its original provider configuration is required, but it has been removed
A resource in state needs a provider configuration (alias) that no longer exists in the code.
AWS: ExpiredToken — The security token included in the request is expired
Temporary AWS credentials (STS/SSO/assumed role) have expired.
AWS: Unable to locate credentials / Could not load credentials from any providers
The AWS CLI/SDK found no credentials in any place it looks — env vars, profile files, SSO cache or an instance/task role.
AWS: SignatureDoesNotMatch / InvalidClientTokenId — the request signature we calculated does not match
AWS rejected the request signature — wrong secret key, wrong region, clock skew, or a presigned URL used differently from how it…
is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::...:role/...
The caller can’t assume the role — either its own policy doesn’t allow sts:AssumeRole, or the role’s trust policy doesn’t trust t…
Cloud Run: Error: Forbidden — Your client does not have permission to get URL / from this server
The Cloud Run service requires authentication and the caller has no valid identity token or the `roles/run.invoker` role.
Google Cloud: 403 PERMISSION_DENIED — Permission 'storage.objects.get' denied on resource (or it may not exist)
The caller's identity lacks the IAM permission named in the message on that resource.
Map another error
Popular: 500403400ORA-009331064Critical errorFileNotFoundException assemblyTypeError