{"record":{"id":"29dbfa6ea18ac5a8","repo":"apache/seatunnel","slug":"unable-to-find-table-in-relational-model-tablei","errorCode":null,"errorMessage":"Unable to find table in relational model: ${tableId}","messagePattern":"Unable to find table in relational model: (.+?)","errorType":"exception","errorClass":"DebeziumException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-cdc/connector-cdc-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java","lineNumber":906,"sourceCode":"                        // at least get the table identifier thrown in the error to debug from\n                        // rather\n                        // than an erroneous NPE\n                        throw new DebeziumException(\n                                \"Unable to find table in relational model: \" + tableId);\n                    }\n                    checkTableColumnNameLengths(table);\n                }\n            } else {\n                // ALL supplemental logging is enabled, now check table/column lengths\n                for (TableId tableId : schema.tableIds()) {\n                    final Table table = schema.tableFor(tableId);\n                    if (table == null) {\n                        // This should never happen; however in the event something would cause it\n                        // we can\n                        // at least get the table identifier thrown in the error to debug from\n                        // rather\n                        // than an erroneous NPE\n                        throw new DebeziumException(\n                                \"Unable to find table in relational model: \" + tableId);\n                    }\n                    checkTableColumnNameLengths(table);\n                }\n            }\n        } finally {\n            if (pdbName != null) {\n                connection.resetSessionToCdb();\n            }\n        }\n        LOGGER.trace(\n                \"Database and table state check finished after {} ms\",\n                Duration.between(start, Instant.now()).toMillis());\n    }\n\n    /**\n     * Examines the table and column names and logs a warning if any name exceeds {@link\n     * #MAXIMUM_NAME_LENGTH}.","sourceCodeStart":888,"sourceCodeEnd":924,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-cdc/connector-cdc-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java#L888-L924","documentation":"Identical to the ALL-columns branch: in the else path of checkDatabaseAndTableState (database-level ALL supplemental logging enabled), each captured tableId is looked up in the relational model and a null result throws 'Unable to find table in relational model: <tableId>'. The message here uses the same string concatenation; it means a configured captured table is missing from the connector's loaded schema.","triggerScenarios":"execute -> checkDatabaseAndTableState, ALL supplemental logging branch: schema.tableFor(tableId) returns null for one of the captured tables while validating table/column name lengths.","commonSituations":"Table dropped/renamed after snapshot but still matched by include filters; stale or desynchronized schema history topic; incremental snapshot of a table absent from the relational model; identifier casing mismatch.","solutions":["Verify the table exists and matches the connector's include/exclude filters with exact casing.","Check and repair the schema history topic (ensure the worker can read it and history recovery completes).","Re-snapshot the missing table or drop it from the capture configuration.","If new tables were added to the include filter, restart with a snapshot refresh (snapshot.mode=schema_only_recovery or re-snapshot) so the model contains them."],"exampleFix":"null","handlingStrategy":"validation","validationCode":"SELECT owner, table_name FROM all_tables\n WHERE owner || '.' || table_name IN (:configuredTableIds);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Re-snapshot when adding new tables to table.include.list","Verify schema history topic integrity before streaming restarts","Use exact, correctly-cased identifiers in include/exclude filters"],"tags":["oracle","cdc","logminer","schema","table-not-found"],"backgroundTag":"resource-not-found","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}