{"record":{"id":"8721f97a703db55e","repo":"pulumi/pulumi","slug":"unknown-step-status-v","errorCode":null,"errorMessage":"unknown step status %v","messagePattern":"unknown step status (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/resource/deploy/resource_status.go","lineNumber":511,"sourceCode":"\t\treturn OpImportReplacement, nil\n\tcase pulumirpc.ViewStep_UNSPECIFIED:\n\t\tfallthrough\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown step op %v\", op)\n\t}\n}\n\n// unmarshalStepStatus unmarshals a pulumirpc.ViewStep_Status into a resource.Status.\nfunc (rs *resourceStatusServer) unmarshalStepStatus(s pulumirpc.ViewStep_Status) (resource.Status, error) {\n\tswitch s {\n\tcase pulumirpc.ViewStep_OK:\n\t\treturn resource.StatusOK, nil\n\tcase pulumirpc.ViewStep_PARTIAL_FAILURE:\n\t\treturn resource.StatusPartialFailure, nil\n\tcase pulumirpc.ViewStep_UNKNOWN:\n\t\treturn resource.StatusUnknown, nil\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"unknown step status %v\", s)\n\t}\n}\n","sourceCodeStart":493,"sourceCodeEnd":514,"githubUrl":"https://github.com/pulumi/pulumi/blob/793f7b2e160db4321fb7fb6b0607461e01cb251e/pkg/resource/deploy/resource_status.go#L493-L514","documentation":"Thrown by unmarshalStepStatus when a pulumirpc.ViewStep_Status enum value has no mapping to a local resource.Status (anything outside OK, PARTIAL_FAILURE, UNKNOWN). It means the status field of a view step message is unrecognized by this engine version.","triggerScenarios":"A newer proto adds a ViewStep status constant that an older CLI cannot map; a message carries an out-of-range or uninitialized status value.","commonSituations":"Mixed CLI/engine versions during upgrades; custom gRPC tooling sending unmapped status constants; stale generated bindings.","solutions":["Upgrade the pulumi CLI to a version that knows the status constant","Keep engine and CLI versions in sync","Have message producers emit only documented status values (OK, PARTIAL_FAILURE, UNKNOWN)","Regenerate pulumirpc bindings for custom tools"],"exampleFix":"// before\ndefault: return 0, fmt.Errorf(\"unknown step status %v\", s)\n// after: add mapping for the new constant\ncase pulumirpc.ViewStep_NEW_STATUS: return resource.StatusNewStatus, nil","handlingStrategy":"type-guard","validationCode":"if s != pulumirpc.ViewStep_SUCCEEDED && s != pulumirpc.ViewStep_PARTIAL_FAILURE && s != pulumirpc.ViewStep_UNKNOWN {\n    return fmt.Errorf(\"status %v not mappable\", s)\n}","typeGuard":"func knownStepStatus(s pulumirpc.ViewStep_Status) bool {\n    switch s {\n    case pulumirpc.ViewStep_SUCCEEDED, pulumirpc.ViewStep_PARTIAL_FAILURE, pulumirpc.ViewStep_UNKNOWN:\n        return true\n    }\n    return false\n}","tryCatchPattern":"if err != nil && strings.Contains(err.Error(), \"unknown step status\") {\n    return fmt.Errorf(\"unsupported status enum; upgrade CLI: %w\", err)\n}","preventionTips":["Emit only documented ViewStep_Status values","Synchronize proto definitions between producer and consumer","Upgrade CLI when introducing new status constants in custom pipelines"],"tags":["grpc","enum","version-skew"],"backgroundTag":"unknown-enum-value","analyzedSha":"793f7b2e160db4321fb7fb6b0607461e01cb251e","analyzedAt":"2026-08-31T09:36:43.099Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}