{"record":{"id":"763893920315a5f8","repo":"pulumi/pulumi","slug":"getting-analyzer-info-w","errorCode":null,"errorMessage":"getting analyzer info: %w","messagePattern":"getting analyzer info: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/cmd/pulumi/policy/policy_analyze.go","lineNumber":387,"sourceCode":"\t\t\tevents <- engine.NewEvent(engine.SummaryEventPayload{\n\t\t\t\tIsPreview:       false,\n\t\t\t\tMaybeCorrupt:    false,\n\t\t\t\tDuration:        0 * time.Second,\n\t\t\t\tResourceChanges: nil,\n\t\t\t\tPolicyPacks:     policyPacks,\n\t\t\t\tResult:          result,\n\t\t\t})\n\t\t\tclose(events)\n\t\t\t<-done\n\t\t}, nil\n}\n\nfunc policyPackVersions(ctx context.Context, analyzers []plugin.Analyzer) (map[string]string, error) {\n\tpolicyPacks := map[string]string{}\n\tfor _, analyzer := range analyzers {\n\t\tinfo, err := analyzer.GetAnalyzerInfo(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"getting analyzer info: %w\", err)\n\t\t}\n\t\tpolicyPacks[info.Name] = info.Version\n\t}\n\treturn policyPacks, nil\n}\n\nfunc (e *analyzeEvents) writeEvent(event engine.Event) {\n\tif e.events != nil {\n\t\te.events <- event\n\t\treturn\n\t}\n\n\tif e.json != nil {\n\t\tapiEvent, err := display.ConvertEngineEvent(event, false /*showSecrets*/)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tapiEvent.Sequence = e.seq","sourceCodeStart":369,"sourceCodeEnd":405,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/cmd/pulumi/policy/policy_analyze.go#L369-L405","documentation":"Wraps a failure from analyzer.GetAnalyzerInfo while policyPackVersions collects pack name/version metadata for the analysis report. Each loaded analyzer plugin is queried over gRPC for its info; any plugin that fails to answer produces this error.","triggerScenarios":"An analyzer plugin process fails or returns an error to GetPolicyAnalyzerInfo during `pulumi policy analyze` metadata collection (e.g. plugin crashed, gRPC timeout, incompatible plugin binary).","commonSituations":"Stale or corrupted plugin in ~/.pulumi/plugins; plugin built for a different pulumi CLI version; plugin binary lacks execute permissions.","solutions":["Reinstall the offending policy pack (`pulumi policy rm <pack>` then `pulumi policy add <pack>`)","Check plugin version compatibility with the CLI (`pulumi plugin ls`)","Run with --logtostderr to identify which analyzer failed","Ensure the plugin binary is executable and not quarantined"],"exampleFix":"// shell before\n$ pulumi policy analyze  # error: getting analyzer info\n// after\n$ pulumi policy rm myorg/mypack && pulumi policy add myorg/mypack@v2.0.0","handlingStrategy":"retry","validationCode":"pulumi plugin ls --cloud 2>&1 | grep -i analyzer || echo 'reinstall policy packs'","typeGuard":null,"tryCatchPattern":"for i in 1 2 3; do\n  pulumi policy analyze && break\n  pulumi plugin rm --all --yes && pulumi plugin install\ndone","preventionTips":["Reinstall packs after CLI upgrades","Check ~/.pulumi/plugins for corrupt entries","Run `pulumi plugin install` in CI setup step"],"tags":["cli","policy","plugin","grpc"],"backgroundTag":"plugin-rpc-failure","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}