{"record":{"id":"c0a386117ebf5429","repo":"apache/beam","slug":"prism-runner-doesn-t-support-the-following-required-features","errorCode":null,"errorMessage":"prism runner doesn't support the following required features: %v","messagePattern":"prism runner doesn't support the following required features: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/runners/prism/internal/jobservices/job.go","lineNumber":64,"sourceCode":"\turns.RequirementSplittableDoFn:     {},\n\turns.RequirementStatefulProcessing: {},\n\turns.RequirementBundleFinalization: {},\n\turns.RequirementOnWindowExpiration: {},\n\turns.RequirementTimeSortedInput:    {},\n}\n\n// TODO, move back to main package, and key off of executor handlers?\n// Accept whole pipeline instead, and look at every PTransform too.\nfunc isSupported(requirements []string) error {\n\tvar unsupported []string\n\tfor _, req := range requirements {\n\t\tif _, ok := supportedRequirements[req]; !ok {\n\t\t\tunsupported = append(unsupported, req)\n\t\t}\n\t}\n\tif len(unsupported) > 0 {\n\t\tsort.Strings(unsupported)\n\t\treturn fmt.Errorf(\"prism runner doesn't support the following required features: %v\", strings.Join(unsupported, \",\"))\n\t}\n\treturn nil\n}\n\n// Job is an interface to the job services for executing pipelines.\n// It allows the executor to communicate status, messages, and metrics\n// back to callers of the Job Management API.\ntype Job struct {\n\tkey     string\n\tjobName string\n\n\tartifactEndpoint string\n\n\tPipeline *pipepb.Pipeline\n\toptions  *structpb.Struct\n\n\t// Management side concerns.\n\tstreamCond *sync.Cond","sourceCodeStart":46,"sourceCodeEnd":82,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/runners/prism/internal/jobservices/job.go#L46-L82","documentation":"Before accepting a job, prism's Prepare step calls isSupported, which checks every pipeline requirement against the supportedRequirements allowlist. Any requirement not in the set is collected and, if any exist, the job is rejected with 'prism runner doesn't support the following required features: <sorted list>'. This is a deliberate capability gate, not a bug.","triggerScenarios":"Submitting a pipeline whose proto sets requirements (e.g. specific capabilities like sink or state/timer features) not in prism's supportedRequirements, during Prepare.","commonSituations":"Pipelines using newly added Beam requirements against an older prism runner; pipelines using exotic features (e.g. self-checkpointing, certain splittable DoFn capabilities) that prism never adopted.","solutions":["Read the comma-separated list in the error to see exactly which features are unsupported.","Upgrade prism to the latest release — the supportedRequirements set grows over time.","Rewrite the pipeline to avoid the unsupported requirement, or use a different runner that supports it."],"exampleFix":"// before: pipeline declares unsupported requirement\nreqs: [\"beam:requirement:unittests:v1\"]\n\n// after: drop the requirement or upgrade prism so it is supported","handlingStrategy":"validation","validationCode":"// Go: check pipeline requirements against prism's allowlist before submission\nfunc unsupportedReqs(reqs []string, supported map[string]struct{}) []string {\n    var out []string\n    for _, r := range reqs {\n        if _, ok := supported[r]; !ok {\n            out = append(out, r)\n        }\n    }\n    return out\n}","typeGuard":null,"tryCatchPattern":"if err := job.Prepare(); err != nil && strings.Contains(err.Error(), \"doesn't support the following required features\") {\n    log.Fatalf(\"prism capability gap — remove these requirements or upgrade prism: %v\", err)\n}","preventionTips":["Review prism's supportedRequirements set before adopting new Beam features","Pin the latest prism release to pick up newly supported requirements","Strip test-only requirements from production pipeline submissions"],"tags":["go","beam","prism-runner","compatibility"],"backgroundTag":"unsupported-operation","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}