apache/beam · error
descriptor not found
Error message
descriptor %v not found
What it means
Error returned by the Prism worker's GetProcessBundleDescriptor when the requested ProcessBundleDescriptorId is not present in the worker's Descriptors map. It means the SDK harness asked for a descriptor the runner never registered (or already evicted) — usually a harness/runner version or ordering mismatch in the FnApi handshake.
Solutions
- Ensure the SDK harness and Prism runner versions match
- Ensure the bundle referencing the descriptor was submitted before this request
- Check that descriptor registration wasn't skipped due to an earlier error
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at sdks/go/pkg/beam/runners/prism/internal/worker/worker.go:280 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/c53b364a32606610.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/go/pkg/beam/runners/prism/internal/worker/worker.go:280
return slog.LevelDebug // -4
case fnpb.LogEntry_Severity_INFO:
return slog.LevelInfo // 0
case fnpb.LogEntry_Severity_NOTICE:
return slog.Level(2)
case fnpb.LogEntry_Severity_WARN:
return slog.LevelWarn // 4
case fnpb.LogEntry_Severity_ERROR:
return slog.LevelError // 8
case fnpb.LogEntry_Severity_CRITICAL:
return slog.Level(10)
}
return slog.LevelInfo
}
func (wk *W) GetProcessBundleDescriptor(ctx context.Context, req *fnpb.GetProcessBundleDescriptorRequest) (*fnpb.ProcessBundleDescriptor, error) {
desc, ok := wk.Descriptors[req.GetProcessBundleDescriptorId()]
if !ok {
return nil, fmt.Errorf("descriptor %v not found", req.GetProcessBundleDescriptorId())
}
return desc, nil
}
// Connected indicates whether the worker has connected to the control RPC.
func (wk *W) Connected() bool {
return wk.connected.Load()
}
// Stopped indicates that the worker has stopped.
func (wk *W) Stopped() bool {
return wk.stopped.Load()
}
// Control relays instructions to SDKs and back again, coordinated via unique instructionIDs.
//
// Requests come from the runner, and are sent to the client in the SDK.
func (wk *W) Control(ctrl fnpb.BeamFnControl_ControlServer) error {View on GitHub (pinned to 12126d8942)