{"record":{"id":"24767c161c1b377c","repo":"getredash/redash","slug":"failed-getting-schema","errorCode":null,"errorMessage":"Failed getting schema.","messagePattern":"Failed getting schema\\.","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"redash/query_runner/ignite.py","lineNumber":81,"sourceCode":"    @classmethod\n    def type(cls):\n        return \"ignite\"\n\n    @classmethod\n    def enabled(cls):\n        return ignite_available or gridgain_available\n\n    def _get_tables(self, schema):\n        query = \"\"\"\n        SELECT schema_name, table_name, column_name, type\n        FROM SYS.TABLE_COLUMNS\n        WHERE schema_name NOT IN ('SYS') and column_name not in ('_KEY','_VAL');\n        \"\"\"\n\n        results, error = self.run_query(query, None)\n\n        if error is not None:\n            raise Exception(\"Failed getting schema.\")\n\n        for row in results[\"rows\"]:\n            if row[\"SCHEMA_NAME\"] != self.configuration.get(\"schema\", \"PUBLIC\"):\n                table_name = \"{}.{}\".format(row[\"SCHEMA_NAME\"], row[\"TABLE_NAME\"])\n            else:\n                table_name = row[\"TABLE_NAME\"]\n\n            if table_name not in schema:\n                schema[table_name] = {\"name\": table_name, \"columns\": []}\n\n            col_type = TYPE_STRING\n            if row[\"TYPE\"] in types_map:\n                col_type = types_map[row[\"TYPE\"]]\n\n            schema[table_name][\"columns\"].append({\"name\": row[\"COLUMN_NAME\"], \"type\": col_type})\n\n        return list(schema.values())\n","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/getredash/redash/blob/ca79fe988d81cdac9675b412f3dfcab107bc1fbc/redash/query_runner/ignite.py#L63-L99","documentation":"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.","triggerScenarios":"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).","commonSituations":"Wrong JDBC-style host/port, user without access to SYS metadata, Ignite version whose catalog tables differ, SSL-required cluster accessed plain.","solutions":["First make a plain query work in the same data source (run a SELECT 1-style query) to isolate connection/auth issues","Check server address/port, username, password, and schema fields in the data source config","Grant the user access to the IGNITE/Catalog metadata or upgrade Ignite/Redash for version-compatible metadata queries","Look at Redash worker logs — the real error from run_query is logged before this exception is raised"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    schema = runner.get_schema(scope)\nexcept Exception as e:\n    if \"Failed getting schema\" in str(e):\n        check_worker_logs_and_run_simple_query_to_isolate_cause()","preventionTips":["Validate Ignite connectivity with a trivial query before schema load","Ensure the DB user can read SYS/catalog metadata","Keep Ignite and Redash versions compatible"],"tags":["apache-ignite","schema","connection","metadata"],"backgroundTag":"schema-load-failed","analyzedSha":"ca79fe988d81cdac9675b412f3dfcab107bc1fbc","analyzedAt":"2026-08-28T18:32:34.637Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}