# Bisecting a Terraform provider crash by version

## Symptom

Provider panic (nil pointer, index out of range) or `plugin did not respond`, reproducible on the same operation.

## Cause

A bug in the provider binary at the pinned version, usually in the resource or data source being operated on. Config is a suspect only after versions are ruled out.

## Confirmation

1. Reproduce with `TF_LOG=DEBUG` and save the full log including the stack trace. Note the exact provider version from the lock file.
2. Check the provider's issue tracker for the panic signature. Crashes get reported fast; a fixed release may already exist.
3. Bisect: set the constraint to the previous minor release, `terraform init -upgrade`, reproduce. Crash gone means the regression is in the version range you just crossed.

## Fix

1. Pin to the last known-good version as the immediate fix. This unblocks the team today.
2. If no good version exists (crash on all versions), minimize the config to the smallest reproduction and file the bug with the debug log.
3. Workarounds (splitting the resource, avoiding the crashing argument) are temporary and get a comment with the issue link.

## Verification

1. The full workflow (init, plan, apply) completes on the pinned version, twice.
2. Set a reminder to re-test on the next provider release. Pinned-because-crash versions should not become permanent without review.
3. When the fix lands: bump, `init -upgrade`, full plan review, apply in non-prod first.
