hashicorp/terraform · error · ErrArchNotSupported

plugin is not supported by your computer architecture/operat

Error message

plugin is not supported by your computer architecture/operating system

What it means

ErrArchNotSupported is returned by Release.Select when the downloaded manifest contains no build matching the runtime's GOOS/GOARCH pair. The plugin publisher did not ship a binary for the current operating system / architecture combination.

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 d32a084675)

Solutions

  1. Run Terraform on one of the supported OS/arch combinations reported by Select's error/list.
  2. Upgrade (or downgrade) the plugin to a release that ships a binary for your platform.
  3. Build the plugin from source for your GOOS/GOARCH and install it locally, bypassing the manifest lookup.
  4. File an issue with the plugin maintainer requesting a build for your platform.

Example fix

n/a — runtime environment mismatch; resolved by switching platform or plugin version, not by code.
Defensive patterns

Strategy: validation

Validate before calling

// Check supported platforms before attempting Select
goos := runtime.GOOS
arch := runtime.GOARCH
// consult Release.Builds for "<goos>_<arch>" entries first

Type guard

n/a — runtime/platform predicate, not a type guard.

Try / catch

build, err := manifest.Select(pluginName, runtime.GOOS, runtime.GOARCH)
if errors.Is(err, pluginshared.ErrArchNotSupported) {
    // enumerate supported combos from manifest.Builds and surface them
    return supportedArchsError(manifest)
}

Prevention

When it happens

Trigger: Release.Select iterates m.Builds comparing each build's "<goos>_<arch>" against the requested pair; if none matches it returns ErrArchNotSupported along with the list of supported combinations.

Common situations: Running Terraform on an uncommon platform (e.g. linux/arm64 when only linux/amd64 was published, or darwin/arm64 on an older release); the plugin maintainer did not cross-compile for the user's platform; running on a brand-new Go port (e.g. linux/riscv64).

Related errors


AI-assisted analysis of hashicorp/terraform@d32a084675 (2026-08-11). Data as JSON: /api/errors/cb4fa4814aa55a61. Report an issue: GitHub.