apache/superset · error
Reset aborted.
Error message
Reset aborted.
What it means
A bare Exception('Reset aborted.') is raised by SecurityResetCommand.validate when the confirm flag is falsy. The command performs a destructive wipe of most Superset metadata (datasets, databases, dashboards, charts, KV entries, logs), so confirm is a mandatory dead-man switch.
Source
Thrown at superset/commands/security/reset.py:52
def __init__(
self,
confirm: bool,
user: Any,
exclude_users: Optional[str] = None,
exclude_roles: Optional[str] = None,
) -> None:
self._user = user
self._confirm = confirm
self._users_to_exclude = ["admin"]
if exclude_users:
self._users_to_exclude.extend(exclude_users.split(","))
self._roles_to_exclude = ["Admin", "Public", "Gamma", "Alpha", "sql_lab"]
if exclude_roles:
self._roles_to_exclude.extend(exclude_roles.split(","))
def validate(self) -> None:
if not self._confirm:
raise Exception("Reset aborted.") # pylint: disable=broad-exception-raised
if not self._user or not self._user.is_active:
raise Exception("User not found.") # pylint: disable=broad-exception-raised
def run(self) -> None:
self.validate()
logger.debug("Resetting Superset Started")
db.session.query(SqlaTable).delete()
databases = db.session.query(Database)
for database in databases:
db.session.delete(database)
db.session.query(Dashboard).delete()
db.session.query(Slice).delete()
db.session.query(KeyValueEntry).delete()
db.session.query(Log).delete()
db.session.query(FavStar).delete()
logger.debug("Ignoring Users: %s", self._users_to_exclude)
users_to_delete = (View on GitHub (pinned to f4587218dd)
Solutions
- Pass an explicit true confirm (e.g. --yes / confirm=True) when invoking the reset
- If the reset was not intended, this abort is the desired outcome — verify the command and arguments before retrying
- Never run this in production; scope destructive resets to disposable dev/demo environments
Example fix
# before SecurityResetCommand(user, confirm=False).run() # after SecurityResetCommand(user, confirm=True).run() # destructive: wipes metadata
Defensive patterns
Strategy: validation
Validate before calling
assert confirm is True, 'reset requires an explicit True confirm'
Type guard
def reset_is_confirmed(flag: object) -> bool:
return flag is True Prevention
- Coerce CLI booleans before passing confirm (argparse: type=bool-aware helper)
- Treat this abort as the safety feature it is; never bypass it
- Restrict the reset command to disposable environments
When it happens
Trigger: Invoking the security reset (e.g. 'superset init' ResetSupersetCommand path or the CLI security reset command) without passing confirm=True, or with confirm parsing to a falsy value ('false', 0, '').
Common situations: Running the documented reset command but forgetting the --yes/confirm argument; boolean flags passed as strings from shell scripts and never coerced.
Related errors
- User not found.
- Package name '{name}' cannot start with a number
- Package name cannot start with Python keyword '{first_part}'
- '{name}' is not a valid Python package name
- '{name}' is a reserved npm package name
AI-assisted analysis of apache/superset@f4587218dd (2026-08-14).
Data as JSON: /api/errors/7065b1fc8c89a4f7.
Report an issue: GitHub.