hashicorp/terraform · error · ErrArchNotSupported
ErrArchNotSupported
ErrArchNotSupported
Error message
plugin is not supported by your computer architecture/operating system
What it means
ErrArchNotSupported is a sentinel returned by Release.Select when the fetched plugin manifest contains builds but none match the runtime's GOOS/GOARCH pair. The manifest is reachable and well-formed; the platform you are running on simply has no published artifact for that plugin.
Source
Thrown at internal/pluginshared/errors.go:21
package pluginshared
import (
"errors"
"fmt"
)
var (
// ErrPluginNotSupported is the error returned when the upstream HCP Terraform does not
// have a manifest.
ErrPluginNotSupported = errors.New("plugin is not supported by the remote version of Terraform Enterprise")
// ErrRequestCanceled is the error returned when the context was cancelled.
ErrRequestCanceled = errors.New("request was canceled")
// ErrArchNotSupported is the error returned when the plugin does not have a build for the
// current OS/Architecture.
ErrArchNotSupported = errors.New("plugin is not supported by your computer architecture/operating system")
// ErrPluginNotFound is the error returned when the plugin manifest points to a location
// that was does not exist.
ErrPluginNotFound = errors.New("plugin download was not found in the location specified in the manifest")
)
// ErrQueryFailed is the error returned when the plugin http client request fails
type ErrQueryFailed struct {
inner error
}
// ErrCloudPluginNotVerified is the error returned when the archive authentication process fails
type ErrCloudPluginNotVerified struct {
inner error
}
// Error returns a string representation of ErrQueryFailed
func (e ErrQueryFailed) Error() string {View on GitHub (pinned to c9def3e214)
Solutions
- Check the provider's releases page for the exact GOOS_GOARCH you need; if absent, switch to a provider version/release that publishes it.
- Run on a supported OS/architecture, or run Terraform in a container/VM of a supported arch.
- If you control the provider, add the missing GOOS/GOARCH to its release build matrix (goreleaser targets).
- As a last resort for local dev, build the provider from source for your platform and install it via filesystem mirror (terraform-provider-network).
Defensive patterns
Strategy: validation
Validate before calling
// Validate platform support against the manifest before downloading.
build, err := release.Select(pluginName, runtime.GOOS, runtime.GOARCH)
if err != nil {
return fmt.Errorf("no %s build for %s/%s: %w", pluginName, runtime.GOOS, runtime.GOARCH, err)
} Type guard
func isArchNotSupported(err error) bool {
return errors.Is(err, pluginshared.ErrArchNotSupported)
} Try / catch
build, err := release.Select(name, goos, arch)
if errors.Is(err, pluginshared.ErrArchNotSupported) {
// surface a helpful list of supported os_arch from release.Builds
return supportedPlatforms(release)
} Prevention
- Publish builds for every GOOS/GOARCH you intend to support.
- Document supported platforms in the provider README.
- In automation runners, pin to a platform the provider publishes.
When it happens
Trigger: Returned at internal/pluginshared/client.go:271 inside Release.Select(pluginName, goos, arch) after iterating m.Builds and finding no entry where build.Os==goos && build.Arch==arch. Logged with the list of supported os_arch keys at TRACE.
Common situations: Running Terraform on an uncommon platform (e.g. darwin/arm64 before a provider shipped universal binaries, linux/arm64, freebsd/amd64, windows/arm64). Using a provider that only publishes amd64 builds. A manifest that was generated for a limited target set. Rosetta/qemu environments still report the native arch.
Related errors
- ErrPluginNotSupported
- no supported plugins for protocol 0
- No state data received from Terraform: No state data was rec
- missing provider schema
- missing provisioner schema
AI-assisted analysis of hashicorp/terraform@c9def3e214 (2026-08-07).
Data as JSON: /api/errors/bd94fca395e97cc7.
Report an issue: GitHub.