diff --git a/.changeset/chilly-peaches-perform.md b/.changeset/chilly-peaches-perform.md new file mode 100644 index 000000000..1cfcde91c --- /dev/null +++ b/.changeset/chilly-peaches-perform.md @@ -0,0 +1,5 @@ +--- +"@hyperdx/app": patch +--- + +Improve search error isolation diff --git a/packages/app/src/DBSearchPage.tsx b/packages/app/src/DBSearchPage.tsx index f5e88d1e1..65df342be 100644 --- a/packages/app/src/DBSearchPage.tsx +++ b/packages/app/src/DBSearchPage.tsx @@ -1162,15 +1162,6 @@ function DBSearchPage() { [onTimeRangeSelect], ); - const onTimeChartError = useCallback( - (error: Error | ClickHouseQueryError) => - setQueryErrors(prev => ({ - ...prev, - DBTimeChart: error, - })), - [setQueryErrors], - ); - const filtersChartConfig = useMemo(() => { const overrides = { orderBy: undefined, @@ -1557,7 +1548,6 @@ function DBSearchPage() { showDisplaySwitcher={false} queryKeyPrefix={QUERY_KEY_PREFIX} onTimeRangeSelect={handleTimeRangeSelect} - onError={onTimeChartError} /> )} @@ -1669,7 +1659,6 @@ function DBSearchPage() { showDisplaySwitcher={false} queryKeyPrefix={QUERY_KEY_PREFIX} onTimeRangeSelect={handleTimeRangeSelect} - onError={onTimeChartError} /> )} diff --git a/packages/app/src/components/DBDeltaChart.tsx b/packages/app/src/components/DBDeltaChart.tsx index 52cfbb4b0..cd6966f9b 100644 --- a/packages/app/src/components/DBDeltaChart.tsx +++ b/packages/app/src/components/DBDeltaChart.tsx @@ -370,7 +370,7 @@ export default function DBDeltaChart({ const PAGE_SIZE = 12; return ( - + void; onSettled?: () => void; onTimeRangeSelect?: (start: Date, end: Date) => void; queryKeyPrefix?: string; @@ -49,6 +48,7 @@ function DBTimeChartComponent({ showLegend?: boolean; sourceId?: string; }) { + const [isErrorExpanded, errorExpansion] = useDisclosure(false); const { displayType: displayTypeProp, dateRange, @@ -67,9 +67,14 @@ function DBTimeChartComponent({ placeholderData: (prev: any) => prev, queryKey: [queryKeyPrefix, queriedConfig], enabled, - onError, }); + useEffect(() => { + if (!isError && isErrorExpanded) { + errorExpansion.close(); + } + }, [isError, isErrorExpanded, errorExpansion]); + const isLoadingOrPlaceholder = isLoading || isPlaceholderData; const { data: source } = useSource({ id: sourceId }); @@ -178,31 +183,48 @@ function DBTimeChartComponent({ Loading Chart Data... ) : isError ? ( -
+
Error loading chart, please check your query or try again later. - - - Error Message: - - - {error.message} - - {error instanceof ClickHouseQueryError && ( - <> - - Sent Query: - - - - )} - + + errorExpansion.close()} + title="Error Details" + > + + + Error Message: + + + {error.message} + + {error instanceof ClickHouseQueryError && ( + <> + + Sent Query: + + + + )} + +
) : graphResults.length === 0 ? (