Plugin protocol version 6 compatibility with Terraform CLI v1.0.8


We recently implemented muxing in our provider in order to migrate to Plugin Framework and also upgraded to Plugin protocol version 6.

As per Terraform documentation here, Protocol v6 is compatible with Terraform CLI v1.0 or later which was updated in our documentation.

However, I also see here that mentions “mux server can be setup to break compatibility with Terraform 0.12 through 1.1.6, but enable Protocol Version 6 capabilities in the Framework provider”

This sounds a bit conflicting. If Terraform versions <1.1.6 are incompatible with Plugin protocol version 6, this should be updated here as well Plugin Development - Framework: Provider Servers | Terraform | HashiCorp Developer
If not, is it only due to muxing with protocol 6 that Terraform versions <1.1.6 cannot be supported?

Hi @maastha :wave: Thank you for raising this topic. Sorry for any confusion here, we’ll update those pieces of documentation to give a special mention.

The Terraform version 1.1.6 requirement for protocol version 6 is only when using terraform-plugin-mux and upgrading the protocol version of an underlying terraform-plugin-sdk provider. There was a bug fix in that Terraform version that only applied to protocol functionality required by terraform-plugin-sdk when upgrading it from protocol version 5 to protocol version 6.

Otherwise, protocol version 6 support technically goes back into the 0.15.x versions. Due to various issues found in the implementation though, protocol version 6 support should be generally okay with Terraform 1.0.6 or later, which is why we documented it as 1.0. In general, we tend to document versions like 1.0 to imply the latest patch versions of that minor version.

By the way, if you have a specific documentation fix/suggestion with the provider development libraries, you can also submit an issue to the relevant GitHub repositories, such terraform-plugin-framework in this case. The team that maintains those is not typically monitoring HashiCorp Discuss for that sort of feedback, except potentially in the Plugin Development section.

@bflad We have been experiencing issues with existing configs for a lot of our resources with Terraform version 1.0.8 since we migrated some of them to the Plugin Framework (protocol 6) with muxing.
Acceptance tests are failing with v1.0.8 NOT ONLY for resources that have been migrated to the Framework but also for resources that were untouched and still using Plugin SDKv2.

Can you provide any recommendations as to how we can minimise these issues and still continue to support 1.0.8?

@bflad also, for any new resources that we migrate to the Framework, in order to maintain compatibility with 1.0.8, would you recommend to not use NestedAttributes?

This was asked previously here User impact due to Plugin migration from SDKv2 to Plugin Framework and plugin protocol change so we are trying to figure ways we can continue to support Terraform version 1.0.8.

1.0.8 is kind of an odd release to pin, you should always be on a latest patch release at a minimum short of working around a particular bug. I know there was at least one later fix to nested attributes, but it’s beed too long to remember all the details.

I’m not as familiar with the provider side of this migration, but we would need to know some details about the issues you are experiencing, and exactly how the acceptance tests are failing in order to try and prescribe some workarounds.