{"record":{"id":"0d0fff933d75e28b","repo":"pulumi/pulumi","slug":"locating-pulumi-yaml-w","errorCode":null,"errorMessage":"locating Pulumi.yaml: %w","messagePattern":"locating Pulumi\\.yaml: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/pulumi/project/newcmd/install.go","lineNumber":91,"sourceCode":"func InstallRequiredPackages(\n\tctx context.Context, pctx *plugin.Context, proj *workspace.Project, root, main string,\n\tprior packageinstallation.State, parallelism int, useLanguageVersionTools bool,\n\treg registry.Registry, stdout, stderr io.Writer,\n) error {\n\tlang, err := pctx.Host.LanguageRuntime(pctx, proj.Runtime.Name())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to load language plugin %s: %w\", proj.Runtime.Name(), err)\n\t}\n\n\tprogramInfo := plugin.NewProgramInfo(pctx.Root, pctx.Pwd, main, proj.Runtime.Options())\n\tpackages, specs, err := lang.GetRequiredPackages(ctx, programInfo)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tprojPath, err := workspace.DetectProjectPathFrom(root)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"locating Pulumi.yaml: %w\", err)\n\t}\n\n\tws := packageworkspace.New(pluginstorage.Instance, pkgWorkspace.Instance, pctx, stdout, stderr, nil,\n\t\tpackageworkspace.Options{\n\t\t\tUseLanguageVersionTools: useLanguageVersionTools,\n\t\t})\n\n\t_, err = packageinstallation.InstallPluginSet(ctx, packages, specs, proj, filepath.Dir(projPath),\n\t\tpackageinstallation.Options{\n\t\t\tConcurrency: parallelism,\n\t\t\tPriorState:  prior,\n\t\t\tOptions: packageresolution.Options{\n\t\t\t\tResolveVersionWithLocalWorkspace:           true,\n\t\t\t\tResolveWithRegistry:                        !env.DisableRegistryResolve.Value(),\n\t\t\t\tAllowNonInvertableLocalWorkspaceResolution: true,\n\t\t\t},\n\t\t}, reg, ws)\n\tif err != nil {","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/pulumi/project/newcmd/install.go#L73-L109","documentation":"During package installation Pulumi re-detects the project file via `workspace.DetectProjectPathFrom(root)`. This error wraps any error from that search for Pulumi.yaml/Pulumi.yml in the given root.","triggerScenarios":"Calling `pulumi install` / package installation where DetectProjectPathFrom returns a non-nil error — typically filesystem permission errors, or the root path not being readable while searching for Pulumi.yaml. (A merely missing project file usually yields a distinct 'no project found' error, not this wrap.)","commonSituations":"Running the command from a directory the user cannot read; a Pulumi.yaml that is a broken symlink; unusual permissions on the working directory.","solutions":["Confirm Pulumi.yaml exists in the current directory or an ancestor and is readable (`ls -la Pulumi.yaml`)","Check directory read/execute permissions on the path","If Pulumi.yaml is a symlink, verify the target exists","Re-run the command from the project root"],"exampleFix":"// before\n$ pulumi install   # run in a directory you can't read\nlocating Pulumi.yaml: permission denied\n// after\n$ cd ~/myproject && pulumi install","handlingStrategy":"validation","validationCode":"[ -r Pulumi.yaml ] && echo ok || echo \"project file missing/unreadable\"\n# verify it is a regular readable file, not a broken symlink\nfile Pulumi.yaml","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always run pulumi install from the project root","Check Pulumi.yaml is a regular readable file (not a broken symlink)","Fix directory permissions before running CLI commands"],"tags":["cli","workspace","project-file"],"backgroundTag":"pulumi-yaml-not-found","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}