{"record":{"id":"5ed8da92b6d6433f","repo":"pinpoint-apm/pinpoint","slug":"table-not-found-initialization-required","errorCode":null,"errorMessage":" table not found. Initialization required.","messagePattern":" table not found\\. Initialization required\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"hbase/hbase-schema/src/main/java/com/navercorp/pinpoint/hbase/schema/service/HbaseSchemaServiceImpl.java","lineNumber":272,"sourceCode":"    }\n\n    @Override\n    public List<SchemaChangeLog> getChangeLogs(String namespace) {\n        assertInitialization(namespace);\n        return schemaChangeLogService.getSchemaChangeLogs(namespace);\n    }\n\n    @Override\n    public SchemaChangeLog getChangeLog(String namespace, String changeSetId) {\n        Assert.hasLength(changeSetId, \"Change set must not be empty\");\n        assertInitialization(namespace);\n        return schemaChangeLogService.getSchemaChangeLog(namespace, changeSetId);\n    }\n\n    private void assertInitialization(String namespace) {\n        if (!schemaChangeLogService.isAvailable(namespace)) {\n            String tableName = schemaChangeLogService.getTableName();\n            throw new IllegalStateException(tableName + \" table not found. Initialization required.\");\n        }\n    }\n}\n","sourceCodeStart":254,"sourceCodeEnd":276,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/hbase/hbase-schema/src/main/java/com/navercorp/pinpoint/hbase/schema/service/HbaseSchemaServiceImpl.java#L254-L276","documentation":"Thrown by HbaseSchemaServiceImpl.assertInitialization when the schema change log table for the namespace does not exist yet (schemaChangeLogService.isAvailable returns false). Operations like update(), getChangeLogs(), and getChangeLog() require initialization first. It tells the caller to run schema initialization before using these APIs.","triggerScenarios":"Calling update/getChangeLogs/getChangeLog against a namespace where the change-log table (per schemaChangeLogService.getTableName()) has never been created — i.e. before the first successful initialization run.","commonSituations":"Fresh HBase cluster or new namespace where the schema tool was never initialized; pointing the app at the wrong namespace/cluster; the change log table was accidentally dropped; HBase connectivity/permissions hiding the table.","solutions":["Run the schema initialization path (update() against an empty/uninitialized namespace initializes it, or the dedicated init entry point) to create the change log table and apply base change sets.","Verify the namespace configuration points at the intended cluster/namespace where initialization was already performed.","Check in HBase shell that the change log table exists and the client has read access to it."],"exampleFix":"// before\nList<ChangeLog> logs = service.getChangeLogs(namespace); // IllegalStateException\n// after\nif (!schemaChangeLogService.isAvailable(namespace)) {\n    service.update(); // performs initialization first\n}\nList<ChangeLog> logs = service.getChangeLogs(namespace);","handlingStrategy":"validation","validationCode":"if (!schemaChangeLogService.isAvailable(namespace)) {\n    // run initialization first or fail fast with a clear message\n    schemaService.update();\n}","typeGuard":null,"tryCatchPattern":"try { service.getChangeLogs(namespace); } catch (IllegalStateException e) {\n    if (e.getMessage().endsWith(\"Initialization required.\")) {\n        service.update(); // initialize then retry once\n        service.getChangeLogs(namespace);\n    }\n}","preventionTips":["Run schema initialization as part of environment setup","Verify namespace config before deploying","Check the change log table exists in deployment health checks"],"tags":["hbase","not-initialized","precondition"],"backgroundTag":"resource-not-found","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}