{"record":{"id":"e6320c2b7d4039f1","repo":"apache/beam","slug":"local-input-v-global-v-uses-accesspattern-v","errorCode":null,"errorMessage":"local input %v (global %v) uses accesspattern %v","messagePattern":"local input (.+?) \\(global (.+?)\\) uses accesspattern (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/runners/prism/internal/stage.go","lineNumber":769,"sourceCode":"\t\t\tfor win, ds := range data {\n\t\t\t\tif len(ds) == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tbyKey := map[string][][]byte{}\n\t\t\t\tfor _, datum := range ds {\n\t\t\t\t\tr := bytes.NewBuffer(datum)\n\t\t\t\t\tkb := kd(r)\n\t\t\t\t\tbyKey[string(kb)] = append(byKey[string(kb)], vd(r))\n\t\t\t\t}\n\t\t\t\twindowed[win] = byKey\n\t\t\t}\n\t\t\tb.MultiMapSideInputData[worker.SideInputKey{\n\t\t\t\tTransformID: link.Transform,\n\t\t\t\tLocal:       link.Local,\n\t\t\t}] = windowed\n\t\t}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"local input %v (global %v) uses accesspattern %v\", link.Local, link.Global, prototext.Format(si.GetAccessPattern()))\n\t}\n}\n\nfunc sourceTransform(parentID string, sourcePortBytes []byte, outPID string) *pipepb.PTransform {\n\tsource := &pipepb.PTransform{\n\t\tUniqueName: parentID,\n\t\tSpec: &pipepb.FunctionSpec{\n\t\t\tUrn:     urns.TransformSource,\n\t\t\tPayload: sourcePortBytes,\n\t\t},\n\t\tOutputs: map[string]string{\n\t\t\t\"i0\": outPID,\n\t\t},\n\t}\n\treturn source\n}\n\nfunc sinkTransform(sinkID string, sinkPortBytes []byte, inPID string) *pipepb.PTransform {","sourceCodeStart":751,"sourceCodeEnd":787,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/runners/prism/internal/stage.go#L751-L787","documentation":"Side inputs are resolved by their declared AccessPattern. Prism supports the default (materialized multimap / LIST) access patterns; any other pattern hits the default case and returns this error identifying the local input, global PCollection, and unrecognized AccessPattern proto. It means the transform requests a side input access strategy prism does not implement.","triggerScenarios":"A ParDo's environment/inputs declare an AccessPattern URN outside the known cases in handleSideInput's switch (neither urns.InputMultimap nor the materialized/default pattern).","commonSituations":"Cross-language transforms (Python/Java) requesting view or iterable access patterns prism hasn't implemented; newer Beam SDK URNs not yet supported by the installed runner; custom environments declaring exotic access patterns.","solutions":["Upgrade prism/beam runner version that supports the access pattern URN","Restructure the pipeline to use standard map/multimap side inputs","Avoid cross-language side input views; pass data as main inputs instead","Log the full prototext AccessPattern from the message to identify the unsupported URN"],"exampleFix":"// before: Python SDK view AsIter side input consumed by Go prism stage\n// after: use AsDict/AsMap style materialized side input or restructure as main input","handlingStrategy":"fallback","validationCode":"// Check the access pattern URN is one prism supports before submit\nurn := si.GetAccessPattern().GetUrn()\nif urn != \"beam:sideinput:multimap:v1\" && urn != \"beam:protocol:runner:v1\" {\n    return fmt.Errorf(\"unsupported side input access pattern: %s\", urn)\n}","typeGuard":null,"tryCatchPattern":"err := job.Submit(ctx)\nif err != nil && strings.Contains(err.Error(), \"uses accesspattern\") {\n    log.Printf(\"unsupported side input access pattern, restructuring pipeline\")\n    return runWithMainInputInstead(p)\n}","preventionTips":["Use standard map/multimap side inputs rather than view-based patterns","Keep runner and SDK versions in lockstep","Avoid cross-language side inputs; move data through main inputs"],"tags":["beam","prism","side-input","unsupported"],"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"}