Terraform can't find a provider version matching what your config pins. It's a constraint, registry, or Terraform-version mismatch — not network flakiness (usually).
required_providers pins (e.g. `~> 4.0`) conflicts with a co-required `>= 5.0` somewhere, or the pinned version was yanked.
Newer provider releases require a newer Terraform protocol; old terraform binaries can't see them at all.
Wrong registry namespace (hashicorp vs the vendor's) means the provider doesn't exist under that address.
terraform version && grep -A3 required_providers *.tf
terraform providers # and: curl -s https://registry.terraform.io/v1/providers/hashicorp/aws/versions | head
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
tfenv use 1.9.5
Pin both Terraform and providers in the repo — floating versions turn provider releases into untested changes in your pipeline. The error message lists every constraint; satisfy them on paper before re-running.
Version constraints in the config exclude everything available: a too-new required_version for your Terraform binary, a provider constraint pointing at a nonexistent version, or a registry/private mirror that lacks the version. The error names which constraint failed.
Different Terraform binaries (terraform -version) or different provider mirror configs (.terraformrc / TF_PLUGIN_CACHE_DIR): a constraint satisfied by 1.6.x fails on 1.3.x. Align the binary and check environment-specific mirror settings.
An opinionated VPC module: per-AZ NAT, explicit dependencies, EKS-ready outputs.
Terraform AWS Foundation — $37 →One-time. Yours to modify. Instant download from the NinjaOps template store.