jaegertracing/jaeger · error
failed to execute FindTraces: %w
Error message
failed to execute FindTraces: %w
What it means
TraceReader.FindTraces wraps an error from the initial FindTraces RPC call with this message. The method returns an iterator; if establishing the stream fails, it yields (nil, err) once with this wrapped error instead of traces. It is distinct from mid-stream errors, which use 'received error from grpc stream'.
Source
Thrown at internal/storage/v2/grpc/tracereader.go:149
SpanKind: op.SpanKind,
}
}
return operations, nil
}
func (tr *TraceReader) FindTraces(
ctx context.Context,
params tracestore.TraceQueryParams,
) iter.Seq2[[]ptrace.Traces, error] {
return func(yield func([]ptrace.Traces, error) bool) {
query, err := toProtoQueryParameters(params)
if err != nil {
yield(nil, err)
return
}
stream, err := tr.client.FindTraces(ctx, &storage.FindTracesRequest{Query: query})
if err != nil {
yield(nil, fmt.Errorf("failed to execute FindTraces: %w", err))
return
}
for received, err := stream.Recv(); !errors.Is(err, io.EOF); received, err = stream.Recv() {
if err != nil {
yield(nil, fmt.Errorf("received error from grpc stream: %w", err))
return
}
if !yield([]ptrace.Traces{received.ToTraces()}, nil) {
return
}
}
}
}
func (tr *TraceReader) FindTraceIDs(
ctx context.Context,
params tracestore.TraceQueryParams,
) iter.Seq2[[]tracestore.FoundTraceID, error] {View on GitHub (pinned to 806f444784)
Solutions
- Check the wrapped error's gRPC status to identify transport vs. application rejection
- Validate the TraceQueryParameters (service name, time range, limits) sent to the server
- Verify remote server availability and version support for FindTraces
- Retry with backoff on codes.Unavailable
Defensive patterns
Strategy: try-catch
Validate before calling
if query.ServiceName == "" && len(query.Attributes) == 0 { return errors.New("query too broad; provide a service name") } Try / catch
for traces, err := range reader.FindTraces(ctx, q) {
if err != nil {
var se *status.Status
if status.Code(err) == codes.Unavailable { /* retry */ }
return err
}
} Prevention
- Validate query params before calling
- Keep server version in sync with client API expectations
- Use bounded time ranges
- Apply retry-with-backoff only for Unavailable codes
When it happens
Trigger: Calling traceReader.FindTraces(ctx, query) where the client.FindTraces(...) streaming RPC fails immediately: server unreachable, invalid query rejected server-side, method unimplemented, or context deadline exceeded before the stream is established.
Common situations: Remote storage backend down; query with invalid/unsupported parameters rejected by server; Unimplemented on old remote servers; network flaps at query start.
Related errors
- received error from grpc stream: %w
- failed to execute GetOperations: %w
- failed to execute FindTraceIDs: %w
- %s: %w
- access denied
AI-assisted analysis of jaegertracing/jaeger@806f444784 (2026-09-01).
Data as JSON: /api/errors/a60e922cf9050ac0.
Report an issue: GitHub.