apache/superset · error · AlertQueryMultipleColumnsError

Alert query returned more than one column. %(num_cols)s colu

Error message

Alert query returned more than one column. %(num_cols)s columns returned

What it means

Error "Alert query returned more than one column. %(num_cols)s columns returned" thrown in apache/superset.

Source

Thrown at superset/commands/report/alert.py:142

        if value is None or pd.isna(value):
            self._result = None
            self._info_message = "Query returned NULL value"
            return
        self._result = value

    @staticmethod
    def _validate_result(rows: np.recarray[Any, Any]) -> None:
        # check if query return more than one row
        if len(rows) > 1:
            raise AlertQueryMultipleRowsError(
                message=_(
                    "Alert query returned more than one row. %(num_rows)s rows returned",  # noqa: E501
                    num_rows=len(rows),
                )
            )
        # check if query returned more than one column
        if len(rows[0]) > 2:
            raise AlertQueryMultipleColumnsError(
                # len is subtracted by 1 to discard pandas index column
                _(
                    "Alert query returned more than one column. "
                    "%(num_cols)s columns returned",
                    num_cols=(len(rows[0]) - 1),
                )
            )

    def _validate_operator(self, rows: np.recarray[Any, Any]) -> None:
        self._validate_result(rows)

        if rows[0][1] is None or pd.isna(rows[0][1]):
            self._result = None
            self._info_message = "Query returned NULL value"
            return

        if rows[0][1] == 0:
            self._result = 0.0

View on GitHub (pinned to f4587218dd)

Solutions

  1. Rewrite the alert SQL to select a single column.

When it happens

Trigger: The alert query returns more than one column; alerts require a single scalar result.

Common situations: Executing an alert whose SQL query returns multiple columns; alert validators require a single scalar value.


AI-assisted analysis of apache/superset@f4587218dd (2026-08-14). Data as JSON: /api/errors/479b41cba149229d. Report an issue: GitHub.