{"record":{"id":"b4cb216cc1a286e3","repo":"apache/cassandra","slug":"index-not-found","errorCode":null,"errorMessage":"Index {} not found","messagePattern":"Index (.+?) not found","errorType":"exception","errorClass":"IndexNotFound","httpStatus":null,"severity":"error","filePath":"pylib/cqlshlib/cqlshmain.py","lineNumber":600,"sourceCode":"            table_meta = TableMetadata(ks_meta, 'role_permissions')\n            table_meta.columns['role'] = ColumnMetadata(table_meta, 'role', cassandra.cqltypes.UTF8Type)\n            table_meta.columns['resource'] = ColumnMetadata(table_meta, 'resource', cassandra.cqltypes.UTF8Type)\n            table_meta.columns['permission'] = ColumnMetadata(table_meta, 'permission', cassandra.cqltypes.UTF8Type)\n        elif tablename == 'generated_values':\n            ks_meta = KeyspaceMetadata(ksname, True, None, None)\n            table_meta = TableMetadata(ks_meta, 'generated_values')\n            table_meta.columns['generated_password'] = ColumnMetadata(table_meta, 'generated_password', cassandra.cqltypes.UTF8Type)\n            table_meta.columns['generated_role_name'] = ColumnMetadata(table_meta, 'generated_role_name', cassandra.cqltypes.UTF8Type)\n        else:\n            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))","sourceCodeStart":582,"sourceCodeEnd":618,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/pylib/cqlshlib/cqlshmain.py#L582-L618","documentation":"Shell.get_index_meta looks up a secondary index by name in KeyspaceMetadata.indexes. If the index name is absent, it raises IndexNotFound. Indexes are keyspace-scoped, so a valid index in another keyspace still fails here.","triggerScenarios":"get_index_meta(ksname, idxname) with idxname not present in ksmeta.indexes — e.g. DESCRIBE of a dropped/typo'd index, or metadata fetched before a CREATE INDEX completed.","commonSituations":"Referring to an index by its backing table name instead of the actual index name; index dropped by another session; schema disagreement after CREATE INDEX; wrong keyspace in scope.","solutions":["Run DESCRIBE KEYSPACE <ks> to see actual index names and correct the name.","Include the keyspace explicitly and confirm the current keyspace is right.","Refresh schema metadata / reconnect if the index was just created.","Create the index with CREATE INDEX if it does not exist."],"exampleFix":"// before\nshell.get_index_meta('ks', 'users_by_email_idx')  # IndexNotFound\n// after\nshell.get_index_meta('ks', 'users_email_idx')  # exact index name from schema","handlingStrategy":"validation","validationCode":"ksmeta = shell.get_keyspace_meta(ksname)\nif idxname not in ksmeta.indexes:\n    raise LookupError(f\"Index {idxname} missing in {ksname}\")","typeGuard":"def index_exists(shell, ksname, idxname):\n    return idxname in shell.get_keyspace_meta(ksname).indexes","tryCatchPattern":"try:\n    imeta = shell.get_index_meta(ksname, idxname)\nexcept IndexNotFound:\n    imeta = None  # use table metadata and scan its index definitions instead","preventionTips":["Use the exact index name, not the table name — check DESCRIBE KEYSPACE output.","Keyspace-qualify index lookups.","Refresh schema metadata after CREATE/DROP INDEX."],"tags":["cassandra","cqlsh","index","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"}