{"record":{"id":"06cf1adec4cfdc5b","repo":"apache/seatunnel","slug":"a-slot-marked-as-temporary-or-with-an-exported-sna","errorCode":null,"errorMessage":"A slot marked as temporary or with an exported snapshot was created, but not on a supported version of Postgres, ignoring!","messagePattern":"A slot marked as temporary or with an exported snapshot was created, but not on a supported version of Postgres, ignoring!","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"seatunnel-connectors-v2/connector-cdc/connector-cdc-opengauss/src/main/java/io/debezium/connector/postgresql/connection/PostgresReplicationConnection.java","lineNumber":460,"sourceCode":"        // the options are not yet exported by the jdbc api wrapper, therefore, we just do\n        // this ourselves but eventually this should be moved back to the jdbc API\n        // see https://github.com/pgjdbc/pgjdbc/issues/1305\n        ServerInfo.ReplicationSlot slotInfo;\n        try {\n            slotInfo = getSlotInfo();\n        } catch (InterruptedException e) {\n            throw new RuntimeException(e);\n        }\n\n        boolean shouldCreateSlot = ServerInfo.ReplicationSlot.INVALID == slotInfo;\n\n        if (shouldCreateSlot) {\n            LOGGER.debug(\"Creating new replication slot '{}' for plugin '{}'\", slotName, plugin);\n            String tempPart = \"\";\n            // Exported snapshots are supported in Postgres 9.4+\n            boolean canExportSnapshot = pgConnection().haveMinimumServerVersion(ServerVersion.v9_4);\n            if ((dropSlotOnClose) && !canExportSnapshot) {\n                LOGGER.warn(\n                        \"A slot marked as temporary or with an exported snapshot was created, \"\n                                + \"but not on a supported version of Postgres, ignoring!\");\n            }\n            if (useTemporarySlot()) {\n                tempPart = \"TEMPORARY\";\n            }\n\n            // See https://www.postgresql.org/docs/current/logical-replication-quick-setup.html\n            // For pgoutput specifically, the publication must be created prior to the slot.\n            initPublication();\n\n            try (Statement stmt = pgConnection().createStatement()) {\n                String createCommand =\n                        String.format(\n                                \"CREATE_REPLICATION_SLOT \\\"%s\\\" %s LOGICAL %s\",\n                                slotName, tempPart, plugin.getPostgresPluginName());\n                LOGGER.info(\"Creating replication slot with command {}\", createCommand);\n                stmt.execute(createCommand);","sourceCodeStart":442,"sourceCodeEnd":478,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-cdc/connector-cdc-opengauss/src/main/java/io/debezium/connector/postgresql/connection/PostgresReplicationConnection.java#L442-L478","documentation":"createReplicationSlot logs this warning when dropSlotOnClose (temporary slot) or snapshot export was requested but the server predates PostgreSQL 9.4, the minimum version supporting TEMPORARY slots and exported snapshots. The connector proceeds to create the slot but ignores the temporary/exported-snapshot semantics.","triggerScenarios":"initReplicationSlot -> createReplicationSlot with dropSlotOnClose=true while pgConnection().haveMinimumServerVersion(ServerVersion.v9_4) is false — i.e., server version < 9.4.","commonSituations":"Connecting Debezium/openGauss CDC to a very old PostgreSQL (pre-9.4) or an openGauss version reporting an old compatibility version; users assuming logical decoding features exist on old servers.","solutions":["Upgrade PostgreSQL to >= 9.4 (ideally >= 10) before using temporary slots or snapshot export.","Set dropSlotOnClose=false (do not mark the slot temporary) if you must stay on the old server.","Check the reported server version (SELECT version();) — some forks report older compatibility versions; align the driver/connector expectations.","Avoid snapshot-dependent workflows (consistent snapshot offsets) on servers < 9.4."],"exampleFix":"// before\nPostgresConnectorConfig with slot.drop.on.close=true against PG 9.3\n// after\n// either upgrade server to >= 9.4 or:\n// \"slot.drop.on.close\": \"false\"","handlingStrategy":"validation","validationCode":"SHOW server_version_num; -- require >= 90400 before using temporary slots / snapshot export","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Target PostgreSQL >= 10 for CDC.","Disable drop.on.close (temporary slots) on old servers.","Check reported server version of forks (e.g. compatibility mode)."],"tags":["cdc","postgresql","version-compatibility","replication-slot"],"backgroundTag":"unsupported-operation","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}