{"record":{"id":"81baef0e57dcaf29","repo":"hashicorp/terraform","slug":"errpluginnotsupported","errorCode":"ErrPluginNotSupported","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/c9def3e214014c1188faabfc4a5bde5095139765/internal/pluginshared/errors.go#L1-L32","documentation":"ErrPluginNotSupported is a sentinel error from the pluginshared manifest client, returned when HCP Terraform / Terraform Enterprise responds to the plugin manifest fetch (manifest.json) with HTTP 404. It indicates the remote platform version does not serve the plugin/manifest endpoint Terraform is querying, i.e. the running platform is older than what this CLI feature requires.","triggerScenarios":"Produced in BasePluginClient.FetchManifest (internal/pluginshared/client.go:193) on resp.StatusCode == http.StatusNotFound from the serviceURL/manifest.json GET. The endpoint absence means the remote TFE/HCP install predates the plugin distribution feature.","commonSituations":"Upgrading the Terraform CLI to a version that fetches an internal plugin (e.g. a bundled tool) from a TFE/HCP instance that has not yet been upgraded to a compatible release. Pointing at an on-prem TFE install that lags behind the CLI. A misconfigured hostname/app token that routes to a different, older tenant.","solutions":["Upgrade the HCP Terraform / TFE instance to a version that supports the plugin feature the CLI expects (check the platform release notes and the CLI's bundled plugin requirements).","Verify the service URL / hostname configuration is correct and routes to the intended, up-to-date tenant.","Downgrade the Terraform CLI to a version compatible with the deployed platform version if an immediate platform upgrade is not possible.","Confirm with the platform admin that the plugin distribution/manifest capability is enabled for the organization."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Before relying on the manifest, probe a lightweight capability check.\n// There is no public capability API; best pre-check is version compatibility doc.","typeGuard":"func isPluginNotSupported(err error) bool {\n    return errors.Is(err, pluginshared.ErrPluginNotSupported)\n}","tryCatchPattern":"rel, err := client.FetchManifest(lastModified)\nswitch {\ncase err == nil:\n    // proceed\ncase errors.Is(err, pluginshared.ErrPluginNotSupported):\n    // platform too old: guide user to upgrade HCP/TFE or downgrade CLI\n    return fmt.Errorf(\"plugin feature unsupported by this HCP Terraform/TFE version; upgrade the platform or use an older Terraform CLI\")\ndefault:\n    return err\n}","preventionTips":["Keep the Terraform CLI and HCP/TFE versions within the documented compatibility matrix.","In automation, detect ErrPluginNotSupported and fail with an actionable message rather than a generic error.","Confirm hostname/app-token route to the intended upgraded tenant."],"tags":["plugin","hcp-terraform","tfe","manifest","version-mismatch"],"analyzedSha":"c9def3e214014c1188faabfc4a5bde5095139765","analyzedAt":"2026-08-07T15:39:49.278Z","schemaVersion":2},"datasetVersion":"2026-08-07T21:17:07.882Z"}