{"record":{"id":"b6cd09b3e418521a","repo":"apache/cassandra","slug":"unknown-table-s-s-b6cd09","errorCode":null,"errorMessage":"Unknown table %s.%s","messagePattern":"Unknown table (.+?)\\.(.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/StandaloneScrubber.java","lineNumber":113,"sourceCode":"        {\n            if (Schema.instance.getKeyspaceMetadata(options.keyspaceName) == null)\n                throw new IllegalArgumentException(String.format(\"Unknown keyspace %s\", options.keyspaceName));\n\n            // Do not load sstables since they might be broken\n            Keyspace keyspace = Keyspace.openWithoutSSTables(options.keyspaceName);\n\n            ColumnFamilyStore cfs = null;\n            for (ColumnFamilyStore c : keyspace.getValidColumnFamilies(true, false, options.cfName))\n            {\n                if (c.name.equals(options.cfName))\n                {\n                    cfs = c;\n                    break;\n                }\n            }\n\n            if (cfs == null)\n                throw new IllegalArgumentException(String.format(\"Unknown table %s.%s\",\n                                                                  options.keyspaceName,\n                                                                  options.cfName));\n\n            String snapshotName = \"pre-scrub-\" + currentTimeMillis();\n\n            OutputHandler handler = new OutputHandler.SystemOutput(options.verbose, options.debug);\n            Directories.SSTableLister lister = cfs.getDirectories().sstableLister(Directories.OnTxnErr.THROW).skipTemporary(true);\n            List<Pair<Descriptor, Set<Component>>> listResult = new ArrayList<>();\n\n            // create snapshot\n            for (Map.Entry<Descriptor, Set<Component>> entry : lister.list().entrySet())\n            {\n                Descriptor descriptor = entry.getKey();\n                Set<Component> components = entry.getValue();\n                if (!components.contains(Components.DATA))\n                    continue;\n\n                listResult.add(Pair.create(descriptor, components));","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/StandaloneScrubber.java#L95-L131","documentation":"StandaloneScrubber.main, after validating the keyspace, iterates the keyspace's valid column families looking for the requested table. If no ColumnFamilyStore matches options.cfName, cfs stays null and it throws IllegalArgumentException for an unknown table.","triggerScenarios":"Running the standalone scrubber with a keyspace that exists but a --cf/--table name that does not match any table in that keyspace.","commonSituations":"Typo in the table name; case mismatch (unquoted names are lowercase); table renamed or dropped; passing a secondary-index or view name where a base table is expected.","solutions":["List tables in the keyspace (DESCRIBE tables in cqlsh) and correct the table name","Use the exact lowercased name for unquoted identifiers","Ensure the table still exists in the schema used by the tool"],"exampleFix":"// before\nStandaloneScrubber ks1 Usres\n// after\nStandaloneScrubber ks1 users","handlingStrategy":"validation","validationCode":"ColumnFamilyStore cfs = Schema.instance.getTableMetadata(ks, cf) != null\n    ? Keyspace.openWithoutSSTables(ks).getColumnFamilyStore(cf) : null;\nif (cfs == null) throw new IllegalArgumentException(\"Unknown table \" + ks + \".\" + cf);","typeGuard":null,"tryCatchPattern":"try { StandaloneScrubber.main(args); }\ncatch (IllegalArgumentException e) {\n    if (e.getMessage().startsWith(\"Unknown table \")) {\n        // fix the table name argument\n    } else throw e;\n}","preventionTips":["Run DESCRIBE tables in the keyspace first","Use the exact table name, lowercased if unquoted","Check for renames/drops between snapshot and tool run"],"tags":["cli","schema","offline-tools"],"backgroundTag":"resource-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"}