apache/seatunnel · warning

\t skipping database '{}' due to error reading tables: {}

Error message

\t skipping database '{}' due to error reading tables: {}

What it means

Same skip-database warning as the modern Debezium path but in the legacy SnapshotReader: while enumerating tables per database during snapshot, a SQLException for a database logs this warning and that database is skipped. Snapshot continues without those tables.

Source

Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/io/debezium/connector/mysql/legacy/SnapshotReader.java:394

                                                    "\t '{}' is not added among known tables", id);
                                        }
                                        if (filters.tableFilter()
                                                .and(isAllowedForSnapshot)
                                                .test(id)) {
                                            capturedTableIds.add(id);
                                            logger.info(
                                                    "\t including '{}' for further processing", id);
                                        } else {
                                            logger.debug(
                                                    "\t '{}' is filtered out of capturing", id);
                                        }
                                    }
                                });
                        readableDatabaseNames.add(dbName);
                    } catch (SQLException e) {
                        // We were unable to execute the query or process the results, so skip this
                        // ...
                        logger.warn(
                                "\t skipping database '{}' due to error reading tables: {}",
                                dbName,
                                e.getMessage());
                    }
                }
                /*
                 * To achieve an ordered snapshot, we would first get a list of Regex tables.whitelist regex patterns
                 * + and then sort the tableIds list based on the above list
                 * +
                 */
                List<Pattern> tableIncludeListPattern =
                        Strings.listOfRegex(
                                configuration.getFallbackStringProperty(
                                        MySqlConnectorConfig.TABLE_INCLUDE_LIST,
                                        MySqlConnectorConfig.TABLE_WHITELIST),
                                Pattern.CASE_INSENSITIVE);
                List<TableId> tableIdsSorted = new ArrayList<>();
                tableIncludeListPattern.forEach(

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Grant the CDC user adequate privileges on all databases expected to be captured.
  2. Confirm the database exists and matches your table-name include/exclude configuration.
  3. Check MySQL error log for the underlying SQLException message printed after the colon.
  4. Upgrade to the current Debezium-based MySQL CDC path if the legacy reader behavior is undesirable.
  5. Rerun the snapshot after fixing permissions to capture previously skipped tables.
Defensive patterns

Strategy: validation

Validate before calling

SHOW GRANTS FOR CURRENT_USER;
-- ensure SELECT on all schemas in table-name config

Prevention

When it happens

Trigger: Legacy snapshot execution reads tables of each database via JDBC; the query fails for one database (privileges, dropped schema, connection error) and the reader logs and continues.

Common situations: Older SeaTunnel/Debezium connector versions using the legacy snapshot path; CDC account with limited schema grants; schema dropped concurrently with snapshot start.

Understand the failure class

Background: Permission denied / not authorized / 403 Forbidden: access-control rejections when the caller lacks the required role, grant, or ownership — this error's family across 18 libraries.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/b94b623adbeff853. Report an issue: GitHub.