{"record":{"id":"7df2321cb6563226","repo":"apache/beam","slug":"split-v-error-from-sdk-v","errorCode":null,"errorMessage":"split[%v] error from SDK: %v","messagePattern":"split\\[(.+?)\\] error from SDK: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"sdks/go/pkg/beam/runners/prism/internal/worker/bundle.go","lineNumber":322,"sourceCode":"\n// Split sends a split request for the given bundle to the passed in worker, blocking on the response.\nfunc (b *B) Split(ctx context.Context, wk *W, fraction float64, allowedSplits []int64) (*fnpb.ProcessBundleSplitResponse, error) {\n\tresp := wk.sendInstruction(ctx, &fnpb.InstructionRequest{\n\t\tRequest: &fnpb.InstructionRequest_ProcessBundleSplit{\n\t\t\tProcessBundleSplit: &fnpb.ProcessBundleSplitRequest{\n\t\t\t\tInstructionId: b.InstID,\n\t\t\t\tDesiredSplits: map[string]*fnpb.ProcessBundleSplitRequest_DesiredSplit{\n\t\t\t\t\tb.InputTransformID: {\n\t\t\t\t\t\tFractionOfRemainder:    fraction,\n\t\t\t\t\t\tAllowedSplitPoints:     allowedSplits,\n\t\t\t\t\t\tEstimatedInputElements: int64(b.EstimatedInputElements),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t})\n\tif resp.GetError() != \"\" {\n\t\treturn nil, fmt.Errorf(\"split[%v] error from SDK: %v\", b.InstID, resp.GetError())\n\t}\n\treturn resp.GetProcessBundleSplit(), nil\n}\n","sourceCodeStart":304,"sourceCodeEnd":326,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/go/pkg/beam/runners/prism/internal/worker/bundle.go#L304-L326","documentation":"Error produced in B.Split when a ProcessBundleSplit request to the SDK worker comes back with a non-empty error. Splits are best-effort (used for work stealing / drainage), so this means the SDK could not split the bundle at the requested fraction and the error, keyed to the bundle instruction ID, is returned to the caller.","triggerScenarios":"Thrown at sdks/go/pkg/beam/runners/prism/internal/worker/bundle.go:322 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Treat split failures as best-effort: fall back to the unsplit bundle","Check SDK logs if splits consistently fail, e.g. uncheckpointable DoFn or disallowed split points"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}