Bug description

I use the superset import-dashboards CLI command to migrate dashboards between different environments. This process worked reliably in apache-superset==3.1.3

Upon attempting to upgrade to apache-superset==5.0.0, the import-dashboards command now fails. After investigation, I found that the new version attempts to validate the sqlalchemy_uri by resolving the hostname and testing the connection during the import process, while version 3.1.3 did not perform this check.

I propose to add a new flag like --skip-database-validation which would explicitly tell the import-dashboards command to bypass the hostname resolution during the import process, allowing the old behavior.

Screenshots/recordings

No response

Superset version

5.0.0

Python version

3.11

Node version

Not applicable

Browser

Not applicable

Additional context

Stacktrace:

Step #1 - "Build Image": #20 55.70 Traceback (most recent call last):
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/importers/v1/__init__.py", line 79, in run
Step #1 - "Build Image": #20 55.70     self._import(self._configs, self.overwrite)
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/dashboard/importers/v1/__init__.py", line 89, in _import
Step #1 - "Build Image": #20 55.70     database = import_database(config, overwrite=False)
Step #1 - "Build Image": #20 55.70                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/database/importers/v1/utils.py", line 89, in import_database
Step #1 - "Build Image": #20 55.70     add_permissions(database, ssh_tunnel)
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/database/utils.py", line 34, in add_permissions
Step #1 - "Build Image": #20 55.70     catalogs = database.get_all_catalog_names(
Step #1 - "Build Image": #20 55.70                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/utils/cache.py", line 129, in wrapped_f
Step #1 - "Build Image": #20 55.70     return f(*args, **kwargs)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 925, in get_all_catalog_names
Step #1 - "Build Image": #20 55.70     raise self.db_engine_spec.get_dbapi_mapped_exception(ex) from ex
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 919, in get_all_catalog_names
Step #1 - "Build Image": #20 55.70     with self.get_inspector(ssh_tunnel=ssh_tunnel) as inspector:
Step #1 - "Build Image": #20 55.70   File "/usr/lib/python3.11/contextlib.py", line 137, in __enter__
Step #1 - "Build Image": #20 55.70     return next(self.gen)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 872, in get_inspector
Step #1 - "Build Image": #20 55.70     yield sqla.inspect(engine)
Step #1 - "Build Image": #20 55.70           ^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/inspection.py", line 64, in inspect
Step #1 - "Build Image": #20 55.70     ret = reg(subject)
Step #1 - "Build Image": #20 55.70           ^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 182, in _engine_insp
Step #1 - "Build Image": #20 55.70     return Inspector._construct(Inspector._init_engine, bind)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 117, in _construct
Step #1 - "Build Image": #20 55.70     init(self, bind)
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 128, in _init_engine
Step #1 - "Build Image": #20 55.70     engine.connect().close()
Step #1 - "Build Image": #20 55.70     ^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3325, in connect
Step #1 - "Build Image": #20 55.70     return self._connection_cls(self, close_with_result=close_with_result)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 96, in __init__
Step #1 - "Build Image": #20 55.70     else engine.raw_connection()
Step #1 - "Build Image": #20 55.70          ^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3404, in raw_connection
Step #1 - "Build Image": #20 55.70     return self._wrap_pool_connect(self.pool.connect, _connection)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3374, in _wrap_pool_connect
Step #1 - "Build Image": #20 55.70     Connection._handle_dbapi_exception_noconnection(
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 2208, in _handle_dbapi_exception_noconnection
Step #1 - "Build Image": #20 55.70     util.raise_(
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_
Step #1 - "Build Image": #20 55.70     raise exception
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3371, in _wrap_pool_connect
Step #1 - "Build Image": #20 55.70     return fn()
Step #1 - "Build Image": #20 55.70            ^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 327, in connect
Step #1 - "Build Image": #20 55.70     return _ConnectionFairy._checkout(self)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 894, in _checkout
Step #1 - "Build Image": #20 55.70     fairy = _ConnectionRecord.checkout(pool)
Step #1 - "Build Image": #20 55.70             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 493, in checkout
Step #1 - "Build Image": #20 55.70     rec = pool._do_get()
Step #1 - "Build Image": #20 55.70           ^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
Step #1 - "Build Image": #20 55.70     return self._create_connection()
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 273, in _create_connection
Step #1 - "Build Image": #20 55.70     return _ConnectionRecord(self)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 388, in __init__
Step #1 - "Build Image": #20 55.70     self.__connect()
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 690, in __connect
Step #1 - "Build Image": #20 55.70     with util.safe_reraise():
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
Step #1 - "Build Image": #20 55.70     compat.raise_(
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_
Step #1 - "Build Image": #20 55.70     raise exception
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 686, in __connect
Step #1 - "Build Image": #20 55.70     self.dbapi_connection = connection = pool._invoke_creator(self)
Step #1 - "Build Image": #20 55.70                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/create.py", line 574, in connect
Step #1 - "Build Image": #20 55.70     return dialect.connect(*cargs, **cparams)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/default.py", line 598, in connect
Step #1 - "Build Image": #20 55.70     return self.dbapi.connect(*cargs, **cparams)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/lib/python3/dist-packages/psycopg2/__init__.py", line 122, in connect
Step #1 - "Build Image": #20 55.70     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70 sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not translate host name "assessor-backend-sheled" to address: Name or service not known
Step #1 - "Build Image": #20 55.70 
Step #1 - "Build Image": #20 55.70 (Background on this error at: https://sqlalche.me/e/14/e3q8)
Step #1 - "Build Image": #20 55.70 
Step #1 - "Build Image": #20 55.70 The above exception was the direct cause of the following exception:
Step #1 - "Build Image": #20 55.70 
Step #1 - "Build Image": #20 55.70 Traceback (most recent call last):
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/dashboard/importers/dispatcher.py", line 57, in run
Step #1 - "Build Image": #20 55.70     command.run()
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 266, in wrapped
Step #1 - "Build Image": #20 55.70     return on_error(ex)
Step #1 - "Build Image": #20 55.70            ^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 236, in on_error
Step #1 - "Build Image": #20 55.70     raise ex
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 259, in wrapped
Step #1 - "Build Image": #20 55.70     result = func(*args, **kwargs)
Step #1 - "Build Image": #20 55.70              ^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.70   File "/usr/local/lib/python3.11/dist-packages/superset/commands/importers/v1/__init__.py", line 83, in run
Step #1 - "Build Image": #20 55.70     raise self.import_error() from ex
Step #1 - "Build Image": #20 55.70 superset.commands.dashboard.exceptions.DashboardImportError: Import dashboard failed for an unknown reason
Step #1 - "Build Image": #20 55.71 2025-08-25 19:17:14,813:ERROR:superset.cli.importexport:There was an error when importing the dashboards(s), please check the exception traceback in the log
Step #1 - "Build Image": #20 55.71 Traceback (most recent call last):
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/importers/v1/__init__.py", line 79, in run
Step #1 - "Build Image": #20 55.71     self._import(self._configs, self.overwrite)
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/dashboard/importers/v1/__init__.py", line 89, in _import
Step #1 - "Build Image": #20 55.71     database = import_database(config, overwrite=False)
Step #1 - "Build Image": #20 55.71                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/database/importers/v1/utils.py", line 89, in import_database
Step #1 - "Build Image": #20 55.71     add_permissions(database, ssh_tunnel)
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/database/utils.py", line 34, in add_permissions
Step #1 - "Build Image": #20 55.71     catalogs = database.get_all_catalog_names(
Step #1 - "Build Image": #20 55.71                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/utils/cache.py", line 129, in wrapped_f
Step #1 - "Build Image": #20 55.71     return f(*args, **kwargs)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 925, in get_all_catalog_names
Step #1 - "Build Image": #20 55.71     raise self.db_engine_spec.get_dbapi_mapped_exception(ex) from ex
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 919, in get_all_catalog_names
Step #1 - "Build Image": #20 55.71     with self.get_inspector(ssh_tunnel=ssh_tunnel) as inspector:
Step #1 - "Build Image": #20 55.71   File "/usr/lib/python3.11/contextlib.py", line 137, in __enter__
Step #1 - "Build Image": #20 55.71     return next(self.gen)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/models/core.py", line 872, in get_inspector
Step #1 - "Build Image": #20 55.71     yield sqla.inspect(engine)
Step #1 - "Build Image": #20 55.71           ^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/inspection.py", line 64, in inspect
Step #1 - "Build Image": #20 55.71     ret = reg(subject)
Step #1 - "Build Image": #20 55.71           ^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 182, in _engine_insp
Step #1 - "Build Image": #20 55.71     return Inspector._construct(Inspector._init_engine, bind)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 117, in _construct
Step #1 - "Build Image": #20 55.71     init(self, bind)
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/reflection.py", line 128, in _init_engine
Step #1 - "Build Image": #20 55.71     engine.connect().close()
Step #1 - "Build Image": #20 55.71     ^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3325, in connect
Step #1 - "Build Image": #20 55.71     return self._connection_cls(self, close_with_result=close_with_result)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 96, in __init__
Step #1 - "Build Image": #20 55.71     else engine.raw_connection()
Step #1 - "Build Image": #20 55.71          ^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3404, in raw_connection
Step #1 - "Build Image": #20 55.71     return self._wrap_pool_connect(self.pool.connect, _connection)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3374, in _wrap_pool_connect
Step #1 - "Build Image": #20 55.71     Connection._handle_dbapi_exception_noconnection(
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 2208, in _handle_dbapi_exception_noconnection
Step #1 - "Build Image": #20 55.71     util.raise_(
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_
Step #1 - "Build Image": #20 55.71     raise exception
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/base.py", line 3371, in _wrap_pool_connect
Step #1 - "Build Image": #20 55.71     return fn()
Step #1 - "Build Image": #20 55.71            ^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 327, in connect
Step #1 - "Build Image": #20 55.71     return _ConnectionFairy._checkout(self)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 894, in _checkout
Step #1 - "Build Image": #20 55.71     fairy = _ConnectionRecord.checkout(pool)
Step #1 - "Build Image": #20 55.71             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 493, in checkout
Step #1 - "Build Image": #20 55.71     rec = pool._do_get()
Step #1 - "Build Image": #20 55.71           ^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
Step #1 - "Build Image": #20 55.71     return self._create_connection()
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 273, in _create_connection
Step #1 - "Build Image": #20 55.71     return _ConnectionRecord(self)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 388, in __init__
Step #1 - "Build Image": #20 55.71     self.__connect()
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 690, in __connect
Step #1 - "Build Image": #20 55.71     with util.safe_reraise():
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
Step #1 - "Build Image": #20 55.71     compat.raise_(
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/util/compat.py", line 211, in raise_
Step #1 - "Build Image": #20 55.71     raise exception
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/pool/base.py", line 686, in __connect
Step #1 - "Build Image": #20 55.71     self.dbapi_connection = connection = pool._invoke_creator(self)
Step #1 - "Build Image": #20 55.71                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/create.py", line 574, in connect
Step #1 - "Build Image": #20 55.71     return dialect.connect(*cargs, **cparams)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/sqlalchemy/engine/default.py", line 598, in connect
Step #1 - "Build Image": #20 55.71     return self.dbapi.connect(*cargs, **cparams)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/lib/python3/dist-packages/psycopg2/__init__.py", line 122, in connect
Step #1 - "Build Image": #20 55.71     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71 sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not translate host name "assessor-backend-sheled" to address: Name or service not known
Step #1 - "Build Image": #20 55.71 
Step #1 - "Build Image": #20 55.71 (Background on this error at: https://sqlalche.me/e/14/e3q8)
Step #1 - "Build Image": #20 55.71 
Step #1 - "Build Image": #20 55.71 The above exception was the direct cause of the following exception:
Step #1 - "Build Image": #20 55.71 
Step #1 - "Build Image": #20 55.71 Traceback (most recent call last):
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/cli/importexport.py", line 158, in import_dashboards
Step #1 - "Build Image": #20 55.71     ImportDashboardsCommand(contents, overwrite=True).run()
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/dashboard/importers/dispatcher.py", line 57, in run
Step #1 - "Build Image": #20 55.71     command.run()
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 266, in wrapped
Step #1 - "Build Image": #20 55.71     return on_error(ex)
Step #1 - "Build Image": #20 55.71            ^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 236, in on_error
Step #1 - "Build Image": #20 55.71     raise ex
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/utils/decorators.py", line 259, in wrapped
Step #1 - "Build Image": #20 55.71     result = func(*args, **kwargs)
Step #1 - "Build Image": #20 55.71              ^^^^^^^^^^^^^^^^^^^^^
Step #1 - "Build Image": #20 55.71   File "/usr/local/lib/python3.11/dist-packages/superset/commands/importers/v1/__init__.py", line 83, in run
Step #1 - "Build Image": #20 55.71     raise self.import_error() from ex
Step #1 - "Build Image": #20 55.71 superset.commands.dashboard.exceptions.DashboardImportError: Import dashboard failed for an unknown reason

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: rusackas

Curious if @betodealmeida / @michael-s-molina / @sadpandajoe know when this check was implemented since 3.x was quite a while back.

Honestly this seems like a GOOD thing to check to me, but maybe we can have options to warn or fail, rather than skipping it.

Comment From: sadpandajoe

Maybe it was part of the catalog work? It could have been before that too.