{"record":{"id":"8ba718ed8a431dbb","repo":"jaegertracing/jaeger","slug":"failed-to-execute-findtraceids-w","errorCode":null,"errorMessage":"failed to execute FindTraceIDs: %w","messagePattern":"failed to execute FindTraceIDs: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/storage/v2/grpc/tracereader.go","lineNumber":176,"sourceCode":"\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (tr *TraceReader) FindTraceIDs(\n\tctx context.Context,\n\tparams tracestore.TraceQueryParams,\n) iter.Seq2[[]tracestore.FoundTraceID, error] {\n\treturn func(yield func([]tracestore.FoundTraceID, error) bool) {\n\t\tquery, err := toProtoQueryParameters(params)\n\t\tif err != nil {\n\t\t\tyield(nil, err)\n\t\t\treturn\n\t\t}\n\t\tresp, err := tr.client.FindTraceIDs(ctx, &storage.FindTraceIDsRequest{Query: query})\n\t\tif err != nil {\n\t\t\tyield(nil, fmt.Errorf(\"failed to execute FindTraceIDs: %w\", err))\n\t\t\treturn\n\t\t}\n\t\tfoundTraceIDs := make([]tracestore.FoundTraceID, len(resp.TraceIds))\n\t\tfor i, foundTraceID := range resp.TraceIds {\n\t\t\tvar sizedTraceID [16]byte\n\t\t\tcopy(sizedTraceID[:], foundTraceID.TraceId)\n\n\t\t\tfoundTraceIDs[i] = tracestore.FoundTraceID{\n\t\t\t\tTraceID: pcommon.TraceID(sizedTraceID),\n\t\t\t\tStart:   foundTraceID.Start,\n\t\t\t\tEnd:     foundTraceID.End,\n\t\t\t}\n\t\t}\n\t\tyield(foundTraceIDs, nil)\n\t}\n}\n\nfunc (tr *TraceReader) FindTraceSummaries(","sourceCodeStart":158,"sourceCodeEnd":194,"githubUrl":"https://github.com/jaegertracing/jaeger/blob/806f4447841ecdb60519f408b004a599d515f437/internal/storage/v2/grpc/tracereader.go#L158-L194","documentation":"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.","triggerScenarios":"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.","commonSituations":"Remote storage backend down or degraded; deadline too short for broad queries; older remote server lacking FindTraceIDs; authentication failures.","solutions":["Check the wrapped error's gRPC status code for the root cause","Verify server connectivity and that it supports FindTraceIDs","Narrow the query (smaller time range, max traces) to reduce load","Retry with backoff on codes.Unavailable"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"if query.StartTimeMin.After(query.StartTimeMax) { return errors.New(\"invalid time range\") }","typeGuard":null,"tryCatchPattern":"for ids, err := range reader.FindTraceIDs(ctx, q) {\n    if err != nil {\n        if status.Code(err) == codes.Unimplemented { /* unsupported on server */ }\n        return err\n    }\n}","preventionTips":["Narrow queries to limit server load","Set adequate deadlines","Confirm remote server implements the v2 API","Retry transient Unavailable errors"],"tags":["grpc","storage","trace-reader"],"backgroundTag":"grpc-rpc-failed","analyzedSha":"806f4447841ecdb60519f408b004a599d515f437","analyzedAt":"2026-09-01T02:39:22.140Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}