{"record":{"id":"ed6aa29b6690d008","repo":"hashicorp/terraform","slug":"plugin-is-not-supported-by-the-remote-version-of-t","errorCode":null,"errorMessage":"plugin is not supported by the remote version of Terraform Enterprise","messagePattern":"plugin is not supported by the remote version of Terraform Enterprise","errorType":"exception","errorClass":"ErrPluginNotSupported","httpStatus":null,"severity":"error","filePath":"internal/pluginshared/errors.go","lineNumber":14,"sourceCode":"// Copyright IBM Corp. 2014, 2026\n// SPDX-License-Identifier: BUSL-1.1\n\npackage pluginshared\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\nvar (\n\t// ErrPluginNotSupported is the error returned when the upstream HCP Terraform does not\n\t// have a manifest.\n\tErrPluginNotSupported = errors.New(\"plugin is not supported by the remote version of Terraform Enterprise\")\n\n\t// ErrRequestCanceled is the error returned when the context was cancelled.\n\tErrRequestCanceled = errors.New(\"request was canceled\")\n\n\t// ErrArchNotSupported is the error returned when the plugin does not have a build for the\n\t// current OS/Architecture.\n\tErrArchNotSupported = errors.New(\"plugin is not supported by your computer architecture/operating system\")\n\n\t// ErrPluginNotFound is the error returned when the plugin manifest points to a location\n\t// that was does not exist.\n\tErrPluginNotFound = errors.New(\"plugin download was not found in the location specified in the manifest\")\n)\n\n// ErrQueryFailed is the error returned when the plugin http client request fails\ntype ErrQueryFailed struct {\n\tinner error\n}\n","sourceCodeStart":1,"sourceCodeEnd":32,"githubUrl":"https://github.com/hashicorp/terraform/blob/d32a084675427f5ac3f7d2868578ef8b2c1dc525/internal/pluginshared/errors.go#L1-L32","documentation":"ErrPluginNotSupported is returned by GetManifest when the manifest endpoint responds with HTTP 404. It indicates that the upstream HCP Terraform / TFE deployment does not publish a plugin manifest at all — i.e. this plugin type is not supported by the remote version of Terraform Enterprise. It is distinct from ErrPluginNotFound (a missing download) and ErrQueryFailed (other HTTP errors).","triggerScenarios":"BasePluginClient.GetManifest issues a GET to the manifest path and receives 404 (client.go:192-193). This happens when the HCP Terraform / TFE version predates plugin manifest support, the plugin name is unknown to the upstream, or the service URL points at an instance that does not host this plugin.","commonSituations":"Pointing the plugin client at an older self-hosted TFE install that lacks the manifest endpoint; mismatch between the plugin name used by the client and what the upstream publishes; using a feature that requires a newer HCP Terraform release than is deployed.","solutions":["Confirm the HCP Terraform / TFE deployment supports this plugin (check release/version against the feature's introduction).","Verify the service URL and plugin name configured on the BasePluginClient.","Upgrade the TFE/HCP Terraform deployment to a version that publishes the plugin manifest.","Distinguish this case in callers with errors.Is(err, pluginshared.ErrPluginNotSupported) and surface a clear 'not supported by remote' message to the user."],"exampleFix":"// before\nmanifest, err := client.GetManifest(url)\nif err != nil {\n    return err\n}\n\n// after\nmanifest, err := client.GetManifest(url)\nif errors.Is(err, pluginshared.ErrPluginNotSupported) {\n    return fmt.Errorf(\"the configured HCP Terraform / TFE instance does not support plugin %q; upgrade the deployment\", pluginName)\n}\nif err != nil {\n    return err\n}","handlingStrategy":"try-catch","validationCode":"// Probe manifest support: a HEAD/GET that 404s on the manifest path\n// indicates the upstream does not support this plugin.\n// (Best done by calling GetManifest and checking the error.)","typeGuard":"func isPluginNotSupported(err error) bool {\n    return errors.Is(err, pluginshared.ErrPluginNotSupported)\n}","tryCatchPattern":"m, err := client.GetManifest(url)\nif errors.Is(err, pluginshared.ErrPluginNotSupported) {\n    // surface a clear 'upgrade your HCP Terraform / TFE' message; do not retry\n    return errNotSupportedByRemote\n}\nif err != nil {\n    return err\n}","preventionTips":["Check the HCP Terraform / TFE version supports the plugin before depending on it.","Use errors.Is to separate 'not supported' from 'transient failure' to avoid useless retries.","Document the minimum upstream version required for each plugin feature."],"tags":["plugin-manifest","terraform-enterprise","version-mismatch","terraform"],"backgroundTag":null,"analyzedSha":"d32a084675427f5ac3f7d2868578ef8b2c1dc525","analyzedAt":"2026-08-11T18:43:52.779Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}