diff --git a/frontend/src/hooks/TracesFunnels/useFunnelMetrics.ts b/frontend/src/hooks/TracesFunnels/useFunnelMetrics.ts index db4a13e446e1..c6a0162d3db8 100644 --- a/frontend/src/hooks/TracesFunnels/useFunnelMetrics.ts +++ b/frontend/src/hooks/TracesFunnels/useFunnelMetrics.ts @@ -26,12 +26,17 @@ export function useFunnelMetrics({ end_time: endTime, }; - const { - data: overviewData, - isLoading, - isFetching, - isError, - } = useFunnelOverview(funnelId, payload); + // Always call both hooks to satisfy the rules of hooks + const stepsOverviewResult = useFunnelStepsOverview(funnelId, payload); + const overviewResult = useFunnelOverview(funnelId, payload); + + // Select which result to use + const queryResult = + stepStart !== undefined && stepEnd !== undefined + ? stepsOverviewResult + : overviewResult; + + const { data: overviewData, isLoading, isFetching, isError } = queryResult; const metricsData = useMemo(() => { const sourceData = overviewData?.payload?.data?.[0]?.data;