{"record":{"id":"9a4604f5d41508a2","repo":"pulumi/pulumi","slug":"load-language-plugin-s-w","errorCode":null,"errorMessage":"load language plugin %s: %w","messagePattern":"load language plugin (.+?): %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/pulumi/install/install.go","lineNumber":175,"sourceCode":"\t\t\tregistry := cmdCmd.NewDefaultRegistry(\n\t\t\t\tcmd.Context(), cmdBackend.DefaultLoginManager, pkgWorkspace.Instance, proj, pctx.Diag, env.Global())\n\t\t\tcontinuation, err := newcmd.InstallPackagesFromProject(cmd.Context(), proj, root,\n\t\t\t\tregistry, parallel, useLanguageVersionTools, cmd.OutOrStdout(), cmd.ErrOrStderr(), env.Global(),\n\t\t\t)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"installing `packages` from Pulumi.yaml: %w\", err)\n\t\t\t}\n\n\t\t\tif proj.Runtime.Name() == \"\" {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\t// First make sure the language plugin is present.  We need this to load the required resource plugins.\n\t\t\t// TODO: we need to think about how best to version this.  For now, it always picks the latest.\n\t\t\truntime := proj.Runtime\n\t\t\tlang, err := pctx.Host.LanguageRuntime(pctx, runtime.Name())\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"load language plugin %s: %w\", runtime.Name(), err)\n\t\t\t}\n\n\t\t\tprogramInfo := plugin.NewProgramInfo(pctx.Root, pwd, main, runtime.Options())\n\n\t\t\tif !noDependencies {\n\t\t\t\terr = pkgCmdUtil.InstallDependencies(ctx, lang, plugin.InstallDependenciesRequest{\n\t\t\t\t\tInfo:                    programInfo,\n\t\t\t\t\tUseLanguageVersionTools: useLanguageVersionTools,\n\t\t\t\t\tIsPlugin:                false,\n\t\t\t\t}, cmd.OutOrStdout(), cmd.ErrOrStderr())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn fmt.Errorf(\"installing dependencies: %w\", err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !noPlugins {\n\t\t\t\t// Pass the continuation from InstallPackagesFromProject so the packages it\n\t\t\t\t// already installed and linked are not reinstalled or regenerated here.","sourceCodeStart":157,"sourceCodeEnd":193,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/pulumi/install/install.go#L157-L193","documentation":"After installing project packages, the install command loads the language runtime plugin (nodejs, python, go, dotnet, yaml, ...) via the plugin host because it is needed to discover and install required resource plugins. If the language plugin cannot be loaded (missing, wrong version, or download failure), the error is wrapped with the runtime name and this message.","triggerScenarios":"Running `pulumi install` in a project whose runtime's language plugin is not installed, cannot be fetched from the plugin marketplace, or whose binary is corrupt/incompatible — `pctx.Host.LanguageRuntime(ctx, runtime.Name())` fails.","commonSituations":"Fresh machine or CI without the language plugin cached and no network access; project `runtime:` name misspelled in Pulumi.yaml; SDK/CLI version mismatch leaving a broken plugin under ~/.pulumi/plugins; proxy/firewall blocking plugin download.","solutions":["Run `pulumi plugin install language <runtime>` (or `pulumi plugin ls` to inspect what's present).","Check the `runtime:` name in Pulumi.yaml for typos (nodejs, python, go, dotnet, yaml).","Remove corrupted plugin directories under ~/.pulumi/plugins and let the CLI re-download.","Verify network/proxy access to plugin sources; set HTTPS_PROXY if behind a proxy."],"exampleFix":"// before: Pulumi.yaml\nruntime: node   // invalid\n// after\nruntime: nodejs\n// and if plugin is missing:\npulumi plugin install language nodejs","handlingStrategy":"retry","validationCode":"pulumi plugin ls | grep -q \"language\" || pulumi plugin install language nodejs","typeGuard":null,"tryCatchPattern":"if ! pulumi install; then\n  pulumi plugin rm --all --yes && pulumi plugin install language nodejs && pulumi install  # re-download plugins\nfi","preventionTips":["Pre-warm language plugins in CI images (`pulumi plugin install language <rt>`).","Spell the `runtime:` name exactly (nodejs, python, go, dotnet, yaml).","Keep the CLI and SDKs on matching versions to avoid plugin incompatibilities.","Configure HTTPS_PROXY on restricted networks so plugin downloads succeed."],"tags":["cli","plugins","language-runtime","install"],"backgroundTag":"plugin-load-failed","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}