getredash/redash · error · Exception

Failed getting schema.

Error message

Failed getting schema.

What it means

Ignite runner's _get_tables runs a metadata SQL query against SYS tables; if run_query returns a non-None error (connection failure, SQL error, auth failure) it raises the generic 'Failed getting schema.' hiding the underlying cause.

Source

Thrown at redash/query_runner/ignite.py:81

    @classmethod
    def type(cls):
        return "ignite"

    @classmethod
    def enabled(cls):
        return ignite_available or gridgain_available

    def _get_tables(self, schema):
        query = """
        SELECT schema_name, table_name, column_name, type
        FROM SYS.TABLE_COLUMNS
        WHERE schema_name NOT IN ('SYS') and column_name not in ('_KEY','_VAL');
        """

        results, error = self.run_query(query, None)

        if error is not None:
            raise Exception("Failed getting schema.")

        for row in results["rows"]:
            if row["SCHEMA_NAME"] != self.configuration.get("schema", "PUBLIC"):
                table_name = "{}.{}".format(row["SCHEMA_NAME"], row["TABLE_NAME"])
            else:
                table_name = row["TABLE_NAME"]

            if table_name not in schema:
                schema[table_name] = {"name": table_name, "columns": []}

            col_type = TYPE_STRING
            if row["TYPE"] in types_map:
                col_type = types_map[row["TYPE"]]

            schema[table_name]["columns"].append({"name": row["COLUMN_NAME"], "type": col_type})

        return list(schema.values())

View on GitHub (pinned to ca79fe988d)

Solutions

  1. First make a plain query work in the same data source (run a SELECT 1-style query) to isolate connection/auth issues
  2. Check server address/port, username, password, and schema fields in the data source config
  3. Grant the user access to the IGNITE/Catalog metadata or upgrade Ignite/Redash for version-compatible metadata queries
  4. Look at Redash worker logs — the real error from run_query is logged before this exception is raised
Defensive patterns

Strategy: try-catch

Try / catch

try:
    schema = runner.get_schema(scope)
except Exception as e:
    if "Failed getting schema" in str(e):
        check_worker_logs_and_run_simple_query_to_isolate_cause()

Prevention

When it happens

Trigger: Schema discovery when the Apache Ignite cluster is unreachable, credentials are wrong, or the configured schema/user lacks access to the system views (IGNITE system schema queries denied).

Common situations: Wrong JDBC-style host/port, user without access to SYS metadata, Ignite version whose catalog tables differ, SSL-required cluster accessed plain.

Related errors


AI-assisted analysis of getredash/redash@ca79fe988d (2026-08-28). Data as JSON: /api/errors/24767c161c1b377c. Report an issue: GitHub.