{"record":{"id":"4efe5b6eeef3c9ff","repo":"hasura/graphql-engine","slug":"plugin-q-does-not-offer-installation-for-this-pla","errorCode":null,"errorMessage":"plugin %q does not offer installation for this platform","messagePattern":"plugin %q does not offer installation for this platform","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/plugins/plugins.go","lineNumber":217,"sourceCode":"\n\treturn plugin, nil\n}\n\nfunc (c *Config) Install(plugin Plugin) error {\n\tvar op errors.Op = \"plugins.Config.Install\"\n\t// Find available installation platform\n\tplatform, ok, err := MatchPlatform(plugin.Platforms)\n\tif err != nil {\n\t\treturn errors.E(\n\t\t\top,\n\t\t\tfmt.Errorf(\"failed trying to find a matching platform in plugin spec: %w\", err),\n\t\t)\n\t}\n\n\tif !ok {\n\t\treturn errors.E(\n\t\t\top,\n\t\t\tfmt.Errorf(\"plugin %q does not offer installation for this platform\", plugin.Name),\n\t\t)\n\t}\n\n\tif err := c.installPlugin(plugin, platform); err != nil {\n\t\treturn errors.E(op, fmt.Errorf(\"install failed: %w\", err))\n\t}\n\n\terr = c.StoreManifest(plugin, c.Paths.PluginInstallReceiptPath(plugin.Name))\n\tif err != nil {\n\t\treturn errors.E(\n\t\t\top,\n\t\t\tfmt.Errorf(\"installation receipt could not be stored, uninstall may fail: %w\", err),\n\t\t)\n\t}\n\n\treturn nil\n}\n","sourceCodeStart":199,"sourceCodeEnd":235,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/plugins/plugins.go#L199-L235","documentation":"Install() calls MatchPlatform(plugin.Platforms) to find a platform entry in the plugin manifest matching the current OS/architecture (GOOS/GOARCH). When no platform entry matches, ok is false and this error is returned: the plugin simply has no build distributed for the machine running the install. It is a manifest-content problem, not a download failure.","triggerScenarios":"Calling Config.Install (or the plugin install CLI command) for a plugin whose Platforms list lacks an entry for the current runtime (e.g. installing a plugin that only ships linux/amd64 binaries from darwin/arm64, or a windows-only plugin on Linux). Also triggered by a manifest with a mismatched or misspelled os/arch key such as \"os\": \"Linux\".","commonSituations":"Installing a plugin from a custom manifest file that omits the user's platform; plugin authors forgetting to publish a cross-platform release; attempting install on Apple Silicon when only amd64 artifacts were published; typo in the Platforms section of the plugin manifest.","solutions":["Check your platform with go env GOOS GOARCH and verify the plugin's manifest Platforms list contains a matching os/arch entry","If installing from a manifest file, edit it to add (or point at) a platform entry matching your OS/architecture","Ask the plugin author to publish a build for your platform, or build the plugin binary locally and reference it via a manifest file","As a workaround on Apple Silicon, run the install under Rosetta using an amd64 build of the CLI if an amd64 platform entry exists"],"exampleFix":"// plugin manifest before\n\"platforms\": {\n  \"linux_amd64\": { \"os\": \"linux\", \"arch\": \"amd64\", \"bin\": \"./myplugin\" }\n}\n// after (add the missing target)\n\"platforms\": {\n  \"linux_amd64\": { \"os\": \"linux\", \"arch\": \"amd64\", \"bin\": \"./myplugin\" },\n  \"darwin_arm64\": { \"os\": \"darwin\", \"arch\": \"arm64\", \"bin\": \"./myplugin\" }\n}","handlingStrategy":"validation","validationCode":"import (\n\t\"runtime\"\n)\n\nfunc supportsPlatform(p Plugin) bool {\n\t_, ok, err := MatchPlatform(p.Platforms)\n\treturn err == nil && ok\n}\n\n// before Install:\nif !supportsPluginRuntime(plugin, runtime.GOOS, runtime.GOARCH) {\n\t// skip or pick another artifact instead of calling Install\n}","typeGuard":null,"tryCatchPattern":"err := cfg.Install(plugin)\nif err != nil && strings.Contains(err.Error(), \"does not offer installation for this platform\") {\n\t// surface a friendly message about missing OS/arch support\n}","preventionTips":["Validate the plugin manifest's Platforms list against runtime.GOOS/GOARCH before calling Install","When consuming third-party manifests, prefer versioned releases that publish all target platforms","In CI, pin the platform matrix and assert manifests cover it before installing"],"tags":["plugins","platform-unsupported","manifest","install"],"backgroundTag":"no-platform-binary-available","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}