From e605c686f8cbbf48dbb701db413e67c8f90e082a Mon Sep 17 00:00:00 2001 From: Ryan McKinley Date: Fri, 18 Aug 2023 13:55:42 -0700 Subject: [PATCH] Transforms: Catch errors while running transforms (#73451) --- .../app/features/query/state/PanelQueryRunner.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/public/app/features/query/state/PanelQueryRunner.ts b/public/app/features/query/state/PanelQueryRunner.ts index 3407f772c75..2ffa6f2cd9c 100644 --- a/public/app/features/query/state/PanelQueryRunner.ts +++ b/public/app/features/query/state/PanelQueryRunner.ts @@ -1,6 +1,6 @@ import { cloneDeep } from 'lodash'; import { Observable, of, ReplaySubject, Unsubscribable } from 'rxjs'; -import { map, mergeMap } from 'rxjs/operators'; +import { map, mergeMap, catchError } from 'rxjs/operators'; import { ApplyFieldOverrideOptions, @@ -221,7 +221,17 @@ export class PanelQueryRunner { interpolate: (v: string) => getTemplateSrv().replace(v, data?.request?.scopedVars), }; - return transformDataFrame(transformations, data.series, ctx).pipe(map((series) => ({ ...data, series }))); + return transformDataFrame(transformations, data.series, ctx).pipe( + map((series) => ({ ...data, series })), + catchError((err) => { + console.warn('Error running transformation:', err); + return of({ + ...data, + state: LoadingState.Error, + error: toDataQueryError(err), + }); + }) + ); } async run(options: QueryRunnerOptions) {