Bug description

For any existing dashboard or a new untitled empty dashboard, unable to delete it.

DELETE API response

Request URL: https://<< host >>/api/v1/dashboard/14 Request Method: DELETE Status Code: 422 Unprocessable Content Response

How to reproduce the bug

  1. Go to dashboards
  2. Click +Dashboard button
  3. Click Discard or Save
  4. Go back to dashboards and try deleting the newly created untitled dashboard
  5. It shows an error Unable to delete

Screenshots/recordings

Apache Superset Unable to delete dashboards

Superset version

3.1.0

Python version

3.9

Node version

16

Browser

Chrome

Additional context

No response

Checklist

  • [X] I have searched Superset docs and Slack and didn't find a solution to my problem.
  • [X] I have searched the GitHub issue tracker and didn't find a similar bug report.
  • [X] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Comment From: jbat

I have the same issue on 3.1.0

Also happening on the GUI as well as API.

"There was an issue deleting TEST COPY - TO BE DELETED: Dashboard could not be deleted."

Logs showing this

 File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1207, in _run_crud
2024-02-19T03:29:32.878Z     raise exc.StaleDataError(
2024-02-19T03:29:32.878Z sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched.

Full stack trace

```2024-02-19T03:29:32.878Z DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.878Z Traceback (most recent call last): 2024-02-19T03:29:32.878Z File "/app/superset/daos/base.py", line 222, in delete 2024-02-19T03:29:32.878Z db.session.commit() 2024-02-19T03:29:32.878Z File "", line 2, in commit 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1435, in commit 2024-02-19T03:29:32.878Z self.transaction.commit(_to_root=self.future) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit 2024-02-19T03:29:32.878Z self._prepare_impl() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl 2024-02-19T03:29:32.878Z self.session.flush() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3367, in flush 2024-02-19T03:29:32.878Z self._flush(objects) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3507, in _flush 2024-02-19T03:29:32.878Z transaction.rollback(_capture_exception=True) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ 2024-02-19T03:29:32.878Z compat.raise( 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ 2024-02-19T03:29:32.878Z raise exception 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3467, in flush 2024-02-19T03:29:32.878Z flush_context.execute() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute 2024-02-19T03:29:32.878Z rec.execute(self) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 577, in execute 2024-02-19T03:29:32.878Z self.dependency_processor.process_deletes(uow, states) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1110, in process_deletes 2024-02-19T03:29:32.878Z self._run_crud( 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1207, in _run_crud 2024-02-19T03:29:32.878Z raise exc.StaleDataError( 2024-02-19T03:29:32.878Z sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.878Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.878Z Traceback (most recent call last): 2024-02-19T03:29:32.878Z File "/app/superset/commands/dashboard/delete.py", line 49, in run 2024-02-19T03:29:32.878Z DashboardDAO.delete(self._models) 2024-02-19T03:29:32.878Z File "/app/superset/daos/base.py", line 225, in delete 2024-02-19T03:29:32.878Z raise DAODeleteFailedError(exception=ex) from ex 2024-02-19T03:29:32.878Z superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19T03:29:32.878Z 2024-02-19 03:29:32,878:ERROR:superset.commands.dashboard.delete:DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.878Z Traceback (most recent call last): 2024-02-19T03:29:32.878Z File "/app/superset/daos/base.py", line 222, in delete 2024-02-19T03:29:32.878Z db.session.commit() 2024-02-19T03:29:32.878Z File "", line 2, in commit 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1435, in commit 2024-02-19T03:29:32.878Z self._transaction.commit(_to_root=self.future) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit 2024-02-19T03:29:32.878Z self._prepare_impl() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl 2024-02-19T03:29:32.878Z self.session.flush() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3367, in flush 2024-02-19T03:29:32.878Z self._flush(objects) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3507, in _flush 2024-02-19T03:29:32.878Z transaction.rollback(_capture_exception=True) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ 2024-02-19T03:29:32.878Z compat.raise( 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ 2024-02-19T03:29:32.878Z raise exception 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3467, in flush 2024-02-19T03:29:32.878Z flush_context.execute() 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute 2024-02-19T03:29:32.878Z rec.execute(self) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 577, in execute 2024-02-19T03:29:32.878Z self.dependency_processor.process_deletes(uow, states) 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1110, in process_deletes 2024-02-19T03:29:32.878Z self._run_crud( 2024-02-19T03:29:32.878Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1207, in _run_crud 2024-02-19T03:29:32.878Z raise exc.StaleDataError( 2024-02-19T03:29:32.878Z sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.878Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.878Z Traceback (most recent call last): 2024-02-19T03:29:32.878Z File "/app/superset/commands/dashboard/delete.py", line 49, in run 2024-02-19T03:29:32.878Z DashboardDAO.delete(self._models) 2024-02-19T03:29:32.878Z File "/app/superset/daos/base.py", line 225, in delete 2024-02-19T03:29:32.878Z raise DAODeleteFailedError(exception=ex) from ex 2024-02-19T03:29:32.878Z superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19T03:29:32.879Z Error deleting model DashboardRestApi: Dashboard could not be deleted. 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/daos/base.py", line 222, in delete 2024-02-19T03:29:32.879Z db.session.commit() 2024-02-19T03:29:32.879Z File "", line 2, in commit 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1435, in commit 2024-02-19T03:29:32.879Z self._transaction.commit(_to_root=self.future) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit 2024-02-19T03:29:32.879Z self._prepare_impl() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl 2024-02-19T03:29:32.879Z self.session.flush() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3367, in flush 2024-02-19T03:29:32.879Z self._flush(objects) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3507, in _flush 2024-02-19T03:29:32.879Z transaction.rollback(_capture_exception=True) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ 2024-02-19T03:29:32.879Z compat.raise( 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ 2024-02-19T03:29:32.879Z raise exception 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3467, in flush 2024-02-19T03:29:32.879Z flush_context.execute() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute 2024-02-19T03:29:32.879Z rec.execute(self) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 577, in execute 2024-02-19T03:29:32.879Z self.dependency_processor.process_deletes(uow, states) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1110, in process_deletes 2024-02-19T03:29:32.879Z self._run_crud( 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1207, in _run_crud 2024-02-19T03:29:32.879Z raise exc.StaleDataError( 2024-02-19T03:29:32.879Z sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.879Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/commands/dashboard/delete.py", line 49, in run 2024-02-19T03:29:32.879Z DashboardDAO.delete(self._models) 2024-02-19T03:29:32.879Z File "/app/superset/daos/base.py", line 225, in delete 2024-02-19T03:29:32.879Z raise DAODeleteFailedError(exception=ex) from ex 2024-02-19T03:29:32.879Z superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19T03:29:32.879Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/dashboards/api.py", line 672, in delete 2024-02-19T03:29:32.879Z DeleteDashboardCommand([pk]).run() 2024-02-19T03:29:32.879Z File "/app/superset/commands/dashboard/delete.py", line 52, in run 2024-02-19T03:29:32.879Z raise DashboardDeleteFailedError() from ex 2024-02-19T03:29:32.879Z superset.commands.dashboard.exceptions.DashboardDeleteFailedError: Dashboard could not be deleted. 2024-02-19T03:29:32.879Z 2024-02-19 03:29:32,878:ERROR:superset.dashboards.api:Error deleting model DashboardRestApi: Dashboard could not be deleted. 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/daos/base.py", line 222, in delete 2024-02-19T03:29:32.879Z db.session.commit() 2024-02-19T03:29:32.879Z File "", line 2, in commit 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1435, in commit 2024-02-19T03:29:32.879Z self._transaction.commit(_to_root=self.future) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 829, in commit 2024-02-19T03:29:32.879Z self._prepare_impl() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl 2024-02-19T03:29:32.879Z self.session.flush() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3367, in flush 2024-02-19T03:29:32.879Z self._flush(objects) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3507, in _flush 2024-02-19T03:29:32.879Z transaction.rollback(_capture_exception=True) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ 2024-02-19T03:29:32.879Z compat.raise( 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ 2024-02-19T03:29:32.879Z raise exception 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 3467, in _flush 2024-02-19T03:29:32.879Z flush_context.execute() 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 456, in execute 2024-02-19T03:29:32.879Z rec.execute(self) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 577, in execute 2024-02-19T03:29:32.879Z self.dependency_processor.process_deletes(uow, states) 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1110, in process_deletes 2024-02-19T03:29:32.879Z self._run_crud( 2024-02-19T03:29:32.879Z File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/dependency.py", line 1207, in _run_crud 2024-02-19T03:29:32.879Z raise exc.StaleDataError( 2024-02-19T03:29:32.879Z sqlalchemy.orm.exc.StaleDataError: DELETE statement on table 'tagged_object' expected to delete 3 row(s); Only 4 were matched. 2024-02-19T03:29:32.879Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/commands/dashboard/delete.py", line 49, in run 2024-02-19T03:29:32.879Z DashboardDAO.delete(self._models) 2024-02-19T03:29:32.879Z File "/app/superset/daos/base.py", line 225, in delete 2024-02-19T03:29:32.879Z raise DAODeleteFailedError(exception=ex) from ex 2024-02-19T03:29:32.879Z superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19T03:29:32.879Z The above exception was the direct cause of the following exception: 2024-02-19T03:29:32.879Z Traceback (most recent call last): 2024-02-19T03:29:32.879Z File "/app/superset/dashboards/api.py", line 672, in delete 2024-02-19T03:29:32.879Z DeleteDashboardCommand([pk]).run() 2024-02-19T03:29:32.879Z File "/app/superset/commands/dashboard/delete.py", line 52, in run 2024-02-19T03:29:32.879Z raise DashboardDeleteFailedError() from ex 2024-02-19T03:29:32.879Z superset.commands.dashboard.exceptions.DashboardDeleteFailedError: Dashboard could not be deleted. 2024-02-19T03:29:32.888Z 49.181.76.109 - - [19/Feb/2024:03:29:32 +0000] "DELETE /api/v1/dashboard/93 HTTP/1.1" 422 46 "https://myhost/dashboard/list/?pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc&viewMode=table" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"


**Comment From: shubhshah01**

Pasting my logs

LINE 2: FROM filter_sets ^

[SQL: SELECT filter_sets.created_on AS filter_sets_created_on, filter_sets.changed_on AS filter_sets_changed_on, filter_sets.id AS filter_sets_id, filter_sets.name AS filter_sets_name, filter_sets.description AS filter_sets_description, filter_sets.json_metadata AS filter_sets_json_metadata, filter_sets.dashboard_id AS filter_sets_dashboard_id, filter_sets.owner_id AS filter_sets_owner_id, filter_sets.owner_type AS filter_sets_owner_type, filter_sets.created_by_fk AS filter_sets_created_by_fk, filter_sets.changed_by_fk AS filter_sets_changed_by_fk FROM filter_sets WHERE %(param_1)s = filter_sets.dashboard_id] [parameters: {'param_1': 1}] (Background on this error at: https://sqlalche.me/e/14/f405) Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1819, in _execute_context self.dialect.do_execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) psycopg2.errors.UndefinedTable: relation "filter_sets" does not exist LINE 2: FROM filter_sets ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/app/superset/daos/base.py", line 219, in delete db.session.delete(item) File "", line 2, in delete File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2648, in delete self.delete_impl(state, instance, head=True) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2674, in _delete_impl cascade_states = list( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/mapper.py", line 3202, in cascade_iterator queue = deque( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1989, in cascade_iterator tuples = self._value_as_iterable( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1963, in _value_as_iterable x = impl.get(state, dict, passive=passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 941, in get value = self.fire_loader_callables(state, key, passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 977, in _fire_loader_callables return self.callable(state, passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 911, in load_for_state return self._emit_lazyload( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 1047, in _emit_lazyload result = session.execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1696, in execute result = conn._execute_20(statement, params or {}, execution_options) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1631, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection return connection._execute_clauseelement( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1498, in _execute_clauseelement ret = self._execute_context( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1862, in _execute_context self._handle_dbapi_exception( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2043, in _handle_dbapi_exception util.raise( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ raise exception File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1819, in _execute_context self.dialect.do_execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "filter_sets" does not exist LINE 2: FROM filter_sets ^

[SQL: SELECT filter_sets.created_on AS filter_sets_created_on, filter_sets.changed_on AS filter_sets_changed_on, filter_sets.id AS filter_sets_id, filter_sets.name AS filter_sets_name, filter_sets.description AS filter_sets_description, filter_sets.json_metadata AS filter_sets_json_metadata, filter_sets.dashboard_id AS filter_sets_dashboard_id, filter_sets.owner_id AS filter_sets_owner_id, filter_sets.owner_type AS filter_sets_owner_type, filter_sets.created_by_fk AS filter_sets_created_by_fk, filter_sets.changed_by_fk AS filter_sets_changed_by_fk FROM filter_sets WHERE %(param_1)s = filter_sets.dashboard_id] [parameters: {'param_1': 1}] (Background on this error at: https://sqlalche.me/e/14/f405)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/app/superset/commands/dashboard/delete.py", line 49, in run DashboardDAO.delete(self._models) File "/app/superset/daos/base.py", line 225, in delete raise DAODeleteFailedError(exception=ex) from ex superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19 05:10:20,286:ERROR:superset.commands.dashboard.delete:(psycopg2.errors.UndefinedTable) relation "filter_sets" does not exist LINE 2: FROM filter_sets ^ ```

Comment From: weikhor

Pasting my logs

``` LINE 2: FROM filter_sets ^

[SQL: SELECT filter_sets.created_on AS filter_sets_created_on, filter_sets.changed_on AS filter_sets_changed_on, filter_sets.id AS filter_sets_id, filter_sets.name AS filter_sets_name, filter_sets.description AS filter_sets_description, filter_sets.json_metadata AS filter_sets_json_metadata, filter_sets.dashboard_id AS filter_sets_dashboard_id, filter_sets.owner_id AS filter_sets_owner_id, filter_sets.owner_type AS filter_sets_owner_type, filter_sets.created_by_fk AS filter_sets_created_by_fk, filter_sets.changed_by_fk AS filter_sets_changed_by_fk FROM filter_sets WHERE %(param_1)s = filter_sets.dashboard_id] [parameters: {'param_1': 1}] (Background on this error at: https://sqlalche.me/e/14/f405) Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1819, in _execute_context self.dialect.do_execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) psycopg2.errors.UndefinedTable: relation "filter_sets" does not exist LINE 2: FROM filter_sets ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/app/superset/daos/base.py", line 219, in delete db.session.delete(item) File "", line 2, in delete File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2648, in delete self.delete_impl(state, instance, head=True) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2674, in _delete_impl cascade_states = list( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/mapper.py", line 3202, in cascade_iterator queue = deque( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1989, in cascade_iterator tuples = self._value_as_iterable( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1963, in _value_as_iterable x = impl.get(state, dict, passive=passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 941, in get value = self.fire_loader_callables(state, key, passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/attributes.py", line 977, in _fire_loader_callables return self.callable(state, passive) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 911, in load_for_state return self._emit_lazyload( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/strategies.py", line 1047, in _emit_lazyload result = session.execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1696, in execute result = conn._execute_20(statement, params or {}, execution_options) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1631, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection return connection._execute_clauseelement( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1498, in _execute_clauseelement ret = self._execute_context( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1862, in _execute_context self._handle_dbapi_exception( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2043, in _handle_dbapi_exception util.raise( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 207, in raise_ raise exception File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1819, in _execute_context self.dialect.do_execute( File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 732, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "filter_sets" does not exist LINE 2: FROM filter_sets ^

[SQL: SELECT filter_sets.created_on AS filter_sets_created_on, filter_sets.changed_on AS filter_sets_changed_on, filter_sets.id AS filter_sets_id, filter_sets.name AS filter_sets_name, filter_sets.description AS filter_sets_description, filter_sets.json_metadata AS filter_sets_json_metadata, filter_sets.dashboard_id AS filter_sets_dashboard_id, filter_sets.owner_id AS filter_sets_owner_id, filter_sets.owner_type AS filter_sets_owner_type, filter_sets.created_by_fk AS filter_sets_created_by_fk, filter_sets.changed_by_fk AS filter_sets_changed_by_fk FROM filter_sets WHERE %(param_1)s = filter_sets.dashboard_id] [parameters: {'param_1': 1}] (Background on this error at: https://sqlalche.me/e/14/f405)

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/app/superset/commands/dashboard/delete.py", line 49, in run DashboardDAO.delete(self._models) File "/app/superset/daos/base.py", line 225, in delete raise DAODeleteFailedError(exception=ex) from ex superset.daos.exceptions.DAODeleteFailedError: Delete failed 2024-02-19 05:10:20,286:ERROR:superset.commands.dashboard.delete:(psycopg2.errors.UndefinedTable) relation "filter_sets" does not exist LINE 2: FROM filter_sets ^ ``` @shubhshah01 Are you running superset on local environment manually or using docker compose ?

Comment From: shubhshah01

Hey @weikhor I am using docker compose

Comment From: michael-s-molina

@shubhshah01 The error is happening because you're missing the filter_sets table. If you search for filter_sets in Superset's codebase you can see that this table was created in a migration from 2021. Recently, this table was deleted on master in this migration which is NOT present in 3.1.

Comment From: shubhshah01

@michael-s-molina Thanks for that...I am on 3.1.0 how do i fix it if it was removed in that version ?

Comment From: michael-s-molina

@michael-s-molina Thanks for that...I am on 3.1.0 how do i fix it if it was removed in that version ?

Just to be clear, there's no script to remove filter_sets in 3.1 so I don't know how it was removed in your deployment. To fix it, you'll need to re-run the migration script that creates the table directly in your database.

Comment From: shubhshah01

Thanks @michael-s-molina Probably it was removed when my instance was downgraded from master to 3.1.0 ! Anyways will try running the above script.

Comment From: michael-s-molina

Closing the issue assuming the problem was fixed by correctly executing the migrations. Feel free to reopen if that's not the case.

Comment From: jbat

Looks like my error is a different issue.
ref https://github.com/apache/superset/pull/26654

Comment From: amitrbhosale

Is there a suggested upgrade path of superset while upgrading to latest versions so that this issue doesn't arise? e.g. 3.0.1 -> 3.1.0 -> 4.0 -> 4.0.1

Comment From: kraftaa

Try to delete all the tags and owner of the dashboard. I had the same issue, and I'm an Admin, and I couldn't delete even my own dashboards. As soon as I deleted tags and removed myself as an owner - voila (all charts have to be removed as well).