"tolerating it because the provider is using the legacy plugin SDK"

I have a workspace that is using Terraform version 1.2.7, and has always used either 1.2.6 or 1.2.7, but I am still getting a ton of “but we are tolerating it because it is using the legacy plugin SDK” messages, each followed by a few “planned value … for a non-computed attribute” messages.

Any idea why that would be? Anything I can do to make the messages go away?

Hi @douglasnaphas,

The use of the “legacy plugin SDK” is decided by which versions of which providers you are using, rather than by which version of Terraform CLI/Core you are using.

If you are using a provider that is built with the legacy SDK then there is no way to avoid these messages; if these providers were not using the legacy SDK then what they are doing would be a hard error rather than just a hidden warning in the logs.

Those logs are there to help provider developers respond to bug reports about strange downstream behavior that might be caused by not implementing the protocol 100% correctly, so they aren’t anything you need to interact with as a user unless you are opening a bug report with the provider mentioned in the message.

Terraform’s internal logs are for Terraform developers rather than for end-users, so you should typically not see them when running Terraform outside a debugging context.

Thanks, @apparentlymart!

I’m using Terraform Cloud, and the provider is registry.terraform.io/hashicorp/aws.

My backend.tf says:

provider "aws" {
  region = "us-west-2"
}

Should I be pinning the provider to a specific version in my provider block, or changing my configuration in some other way?

Hi @douglasnaphas,

The latest version of the hashicorp/aws provider is still using the legacy SDK for a lot of resource types, because that provider is very large and most of it was written a long time ago. Therefore seeing this warning would be expected for most resource types in that provider.

1 Like

Thanks, @apparentlymart. I understand. I didn’t realize that an up-to-date version of the provider might use the legacy SDK for certain resource types.