apache/beam · error
split[ ] error from SDK
Error message
split[%v] error from SDK: %v
What it means
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.
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
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at sdks/go/pkg/beam/runners/prism/internal/worker/bundle.go:322 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/7df2321cb6563226.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/go/pkg/beam/runners/prism/internal/worker/bundle.go:322
// Split sends a split request for the given bundle to the passed in worker, blocking on the response.
func (b *B) Split(ctx context.Context, wk *W, fraction float64, allowedSplits []int64) (*fnpb.ProcessBundleSplitResponse, error) {
resp := wk.sendInstruction(ctx, &fnpb.InstructionRequest{
Request: &fnpb.InstructionRequest_ProcessBundleSplit{
ProcessBundleSplit: &fnpb.ProcessBundleSplitRequest{
InstructionId: b.InstID,
DesiredSplits: map[string]*fnpb.ProcessBundleSplitRequest_DesiredSplit{
b.InputTransformID: {
FractionOfRemainder: fraction,
AllowedSplitPoints: allowedSplits,
EstimatedInputElements: int64(b.EstimatedInputElements),
},
},
},
},
})
if resp.GetError() != "" {
return nil, fmt.Errorf("split[%v] error from SDK: %v", b.InstID, resp.GetError())
}
return resp.GetProcessBundleSplit(), nil
}
View on GitHub (pinned to 12126d8942)