diff --git a/changes/issue-2059-delete-query-in-policy-ux b/changes/issue-2059-delete-query-in-policy-ux new file mode 100644 index 0000000000..f395979471 --- /dev/null +++ b/changes/issue-2059-delete-query-in-policy-ux @@ -0,0 +1 @@ +* Better error handling when a user tries to delete a query that is set in a policy \ No newline at end of file diff --git a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx index 199cf97adb..1de3e5d80e 100644 --- a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx +++ b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx @@ -108,13 +108,26 @@ const ManageQueriesPage = (): JSX.Element => { toggleRemoveQueryModal(); dispatch(queryActions.loadAll()); }) - .catch(() => { - dispatch( - renderFlash( - "error", - `Unable to remove ${queryOrQueries}. Please try again.` - ) - ); + .catch((response) => { + if ( + response.base.slice(0, 47) === + "the operation violates a foreign key constraint" + ) { + dispatch( + renderFlash( + "error", + `Could not delete query because this query is used as a policy. First remove the policy and then try deleting the query again.` + ) + ); + dispatch(queryActions.loadAll()); + } else { + dispatch( + renderFlash( + "error", + `Unable to remove ${queryOrQueries}. Please try again.` + ) + ); + } toggleRemoveQueryModal(); }); }, [dispatch, selectedQueryIds, toggleRemoveQueryModal]);