{"record":{"id":"b331f4fadd059cc2","repo":"apache/cassandra","slug":"materialized-view-not-found","errorCode":null,"errorMessage":"Materialized view '{}' not found","messagePattern":"Materialized view '(.+?)' not found","errorType":"exception","errorClass":"MaterializedViewNotFound","httpStatus":null,"severity":"error","filePath":"pylib/cqlshlib/cqlshmain.py","lineNumber":610,"sourceCode":"            raise ColumnFamilyNotFound(\"Column family {} not found\".format(tablename))\n\n    def get_index_meta(self, ksname, idxname):\n        if ksname is None:\n            ksname = self.current_keyspace\n        ksmeta = self.get_keyspace_meta(ksname)\n\n        if idxname not in ksmeta.indexes:\n            raise IndexNotFound(\"Index {} not found\".format(idxname))\n\n        return ksmeta.indexes[idxname]\n\n    def get_view_meta(self, ksname, viewname):\n        if ksname is None:\n            ksname = self.current_keyspace\n        ksmeta = self.get_keyspace_meta(ksname)\n\n        if viewname not in ksmeta.views:\n            raise MaterializedViewNotFound(\"Materialized view '{}' not found\".format(viewname))\n        return ksmeta.views[viewname]\n\n    def get_object_meta(self, ks, name):\n        if name is None:\n            if ks and ks in self.conn.metadata.keyspaces:\n                return self.conn.metadata.keyspaces[ks]\n            elif self.current_keyspace is None:\n                raise ObjectNotFound(\"'{}' not found in keyspaces\".format(ks))\n            else:\n                name = ks\n                ks = self.current_keyspace\n\n        if ks is None:\n            ks = self.current_keyspace\n\n        ksmeta = self.get_keyspace_meta(ks)\n\n        if name in ksmeta.tables:","sourceCodeStart":592,"sourceCodeEnd":628,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/pylib/cqlshlib/cqlshmain.py#L592-L628","documentation":"Shell.get_view_meta looks up a materialized view in KeyspaceMetadata.views. If the view name is absent it raises MaterializedViewNotFound. Views are keyspace-scoped and live in their own metadata collection, separate from tables.","triggerScenarios":"get_view_meta(ksname, viewname) with viewname not in ksmeta.views — commonly via parse_for_select_meta when a SELECT targets a materialized view that does not exist under that name/keyspace.","commonSituations":"Querying a view that was dropped; typo in the view name; view exists in a different keyspace; stale driver metadata right after CREATE MATERIALIZED VIEW.","solutions":["Run DESCRIBE MATERIALIZED VIEWS (or DESCRIBE KEYSPACE) and correct the view name.","Qualify the view with the correct keyspace.","Refresh schema metadata / reconnect if the view was just created.","Create the view with CREATE MATERIALIZED VIEW if it does not exist."],"exampleFix":"// before\nshell.get_view_meta('ks', 'user_by_email')  # MaterializedViewNotFound\n// after\nshell.get_view_meta('ks', 'users_by_email')  # exact view name","handlingStrategy":"validation","validationCode":"ksmeta = shell.get_keyspace_meta(ksname)\nif viewname not in ksmeta.views:\n    raise LookupError(f\"View {viewname} missing in {ksname}\")","typeGuard":"def view_exists(shell, ksname, viewname):\n    return viewname in shell.get_keyspace_meta(ksname).views","tryCatchPattern":"try:\n    vmeta = shell.get_view_meta(ksname, viewname)\nexcept MaterializedViewNotFound:\n    vmeta = None  # fall back to table lookup or re-describe","preventionTips":["Confirm view names with DESCRIBE MATERIALIZED VIEWS.","Keyspace-qualify view references.","Refresh schema metadata after CREATE/DROP MATERIALIZED VIEW."],"tags":["cassandra","cqlsh","materialized-view","schema-metadata","not-found"],"backgroundTag":"entity-not-found","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}