jaegertracing/jaeger · error

failed to execute FindTraceIDs: %w

Error message

failed to execute FindTraceIDs: %w

What it means

TraceReader.FindTraceIDs wraps an error from the FindTraceIDs RPC with this message. The method returns an iterator over found trace IDs; if the underlying client call fails, it yields (nil, err) with this wrapped error.

Source

Thrown at internal/storage/v2/grpc/tracereader.go:176

				return
			}
		}
	}
}

func (tr *TraceReader) FindTraceIDs(
	ctx context.Context,
	params tracestore.TraceQueryParams,
) iter.Seq2[[]tracestore.FoundTraceID, error] {
	return func(yield func([]tracestore.FoundTraceID, error) bool) {
		query, err := toProtoQueryParameters(params)
		if err != nil {
			yield(nil, err)
			return
		}
		resp, err := tr.client.FindTraceIDs(ctx, &storage.FindTraceIDsRequest{Query: query})
		if err != nil {
			yield(nil, fmt.Errorf("failed to execute FindTraceIDs: %w", err))
			return
		}
		foundTraceIDs := make([]tracestore.FoundTraceID, len(resp.TraceIds))
		for i, foundTraceID := range resp.TraceIds {
			var sizedTraceID [16]byte
			copy(sizedTraceID[:], foundTraceID.TraceId)

			foundTraceIDs[i] = tracestore.FoundTraceID{
				TraceID: pcommon.TraceID(sizedTraceID),
				Start:   foundTraceID.Start,
				End:     foundTraceID.End,
			}
		}
		yield(foundTraceIDs, nil)
	}
}

func (tr *TraceReader) FindTraceSummaries(

View on GitHub (pinned to 806f444784)

Solutions

  1. Check the wrapped error's gRPC status code for the root cause
  2. Verify server connectivity and that it supports FindTraceIDs
  3. Narrow the query (smaller time range, max traces) to reduce load
  4. Retry with backoff on codes.Unavailable
Defensive patterns

Strategy: try-catch

Validate before calling

if query.StartTimeMin.After(query.StartTimeMax) { return errors.New("invalid time range") }

Try / catch

for ids, err := range reader.FindTraceIDs(ctx, q) {
    if err != nil {
        if status.Code(err) == codes.Unimplemented { /* unsupported on server */ }
        return err
    }
}

Prevention

When it happens

Trigger: Calling traceReader.FindTraceIDs(ctx, query) when the remote client.FindTraceIDs(...) call fails: server unreachable, context cancelled, query rejected, or Unimplemented method on the remote server.

Common situations: Remote storage backend down or degraded; deadline too short for broad queries; older remote server lacking FindTraceIDs; authentication failures.

Related errors


AI-assisted analysis of jaegertracing/jaeger@806f444784 (2026-09-01). Data as JSON: /api/errors/8ba718ed8a431dbb. Report an issue: GitHub.