# Error: Conflicting backend configuration: partial backend configuration specified for the 's3' backend

- **ID:** `terraform/conflicting-backend-configuration`
- **Domain:** terraform
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 85%

## Root Cause

Terraform backend configuration is partially specified in both the terraform block and via command-line -backend-config options, creating an unresolvable conflict.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Terraform v1.5 | active | — | — |
| Terraform v1.6 | active | — | — |
| Terraform v1.7 | active | — | — |

## Workarounds

1. **Use a fully specified backend block in the terraform configuration: `terraform { backend "s3" { bucket = "my-bucket" key = "path/to/state" region = "us-east-1" } }` and remove all -backend-config flags from the init command.** (90% success)
   ```
   Use a fully specified backend block in the terraform configuration: `terraform { backend "s3" { bucket = "my-bucket" key = "path/to/state" region = "us-east-1" } }` and remove all -backend-config flags from the init command.
   ```
2. **Use only command-line -backend-config options with an empty backend block: `terraform { backend "s3" {} }` then run `terraform init -backend-config="bucket=my-bucket" -backend-config="key=path/to/state"`.** (85% success)
   ```
   Use only command-line -backend-config options with an empty backend block: `terraform { backend "s3" {} }` then run `terraform init -backend-config="bucket=my-bucket" -backend-config="key=path/to/state"`.
   ```
3. **Run `terraform init -reconfigure` to force reinitialization and ignore existing state configuration, then provide complete config via -backend-config flags.** (75% success)
   ```
   Run `terraform init -reconfigure` to force reinitialization and ignore existing state configuration, then provide complete config via -backend-config flags.
   ```

## Dead Ends

- **Removing all -backend-config flags and relying solely on the terraform block** — If the terraform block itself is incomplete (e.g., missing required attributes like bucket or key), init will fail with missing configuration errors. (65% fail)
- **Setting all backend config directly in the terraform block without any -backend-config flags, then rerunning init** — If the backend block contains partial config that conflicts with inherited state, Terraform may still detect a mismatch and refuse to initialize. (50% fail)
- **Deleting the .terraform directory and rerunning init without -backend-config** — Deleting .terraform doesn't resolve the config conflict; Terraform will still parse the backend block and report the same error if partial config remains. (80% fail)
