{"record":{"id":"66b5c659d513ab4e","repo":"apache/beam","slug":"unsupported-window-type-v","errorCode":null,"errorMessage":"unsupported window type: %v","messagePattern":"unsupported window type: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/core/runtime/exec/translate.go","lineNumber":279,"sourceCode":"\t\t}\n\t\tsize := sizePB.AsDuration()\n\n\t\treturn window.NewSlidingWindows(period, size), nil\n\n\tcase graphx.URNSessionsWindowFn:\n\t\tvar payload pipepb.SessionWindowsPayload\n\t\tif err := proto.Unmarshal(wfn.GetPayload(), &payload); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgapPB := payload.GetGapSize()\n\t\tif err := gapPB.CheckValid(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgap := gapPB.AsDuration()\n\t\treturn window.NewSessions(gap), nil\n\n\tdefault:\n\t\treturn nil, errors.Errorf(\"unsupported window type: %v\", urn)\n\t}\n}\n\nfunc unmarshalAndMakeWindowMapping(wmfn *pipepb.FunctionSpec) (WindowMapper, error) {\n\tswitch urn := wmfn.GetUrn(); urn {\n\tcase graphx.URNWindowMappingGlobal:\n\t\treturn &windowMapper{wfn: window.NewGlobalWindows()}, nil\n\tcase graphx.URNWindowMappingFixed:\n\t\tvar payload pipepb.FixedWindowsPayload\n\t\tif err := proto.Unmarshal(wmfn.GetPayload(), &payload); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsizePB := payload.GetSize()\n\t\tif err := sizePB.CheckValid(); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsize := sizePB.AsDuration()\n\t\treturn &windowMapper{wfn: window.NewFixedWindows(size)}, nil","sourceCodeStart":261,"sourceCodeEnd":297,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/core/runtime/exec/translate.go#L261-L297","documentation":"unmarshalWindowFn converts a windowing strategy's window-function URN into a Beam Go window_fn. Only known types (global, sessions, fixed, sliding, custom) are supported; any other URN hits the default branch and returns this error.","triggerScenarios":"A pipeline description references a windowFn URN not in the switch (e.g. a newer runner-only window type or misspelled URN), during makeLink/unmarshalWindowFn.","commonSituations":"Using a runner or SDK version that emits window types the Go SDK doesn't understand; custom windowing from other-language SDKs ported into a Go harness; typo'd URNs in generated pipelines.","solutions":["Use a supported window type (global windows, fixed, sliding, sessions, or a registered custom window fn)","Upgrade the Beam Go SDK so it recognizes the runner's window URN","Verify the windowing strategy emitted by your pipeline construction (graphx.NewWindowingStrategy) uses a known URN"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Verify window URN is supported before submitting\nsupported := map[string]bool{\"beam:window:fn:global_windows:v1\": true, \"beam:window:fn:fixed_windows:v1\": true, \"beam:window:fn:sliding_windows:v1\": true, \"beam:window:fn:session_windows:v1\": true}\nif !supported[windowFnUrn] {\n    return fmt.Errorf(\"unsupported window fn: %s\", windowFnUrn)\n}","typeGuard":null,"tryCatchPattern":"if err := buildPlan(desc); err != nil {\n    if strings.Contains(err.Error(), \"unsupported window type\") {\n        // fall back to a supported windowing strategy or upgrade SDK\n    }\n}","preventionTips":["Use only documented window types in cross-SDK pipelines","Upgrade the Go SDK when runners add new window URNs","Pin runner/SDK versions tested together"],"tags":["go","apache-beam","windowing"],"backgroundTag":"invalid-enum-value","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"}