{"record":{"id":"a99e0d0a6bb5d5e1","repo":"apache/seatunnel","slug":"system-or-jvm-property-property-is-already-def","errorCode":null,"errorMessage":"System or JVM property '<property>' is already defined, but the configuration property '<field.name()>' defines a different value","messagePattern":"System or JVM property '<property>' is already defined, but the configuration property '<field\\.name\\(\\)>' defines a different value","errorType":"exception","errorClass":"DebeziumException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/io/debezium/connector/mysql/MySqlConnection.java","lineNumber":233,"sourceCode":"                    String msg =\n                            \"System or JVM property '\"\n                                    + property\n                                    + \"' is already defined, but the configuration property '\"\n                                    + field.name()\n                                    + \"' defines a different value\";\n                    if (showValueInError) {\n                        msg =\n                                \"System or JVM property '\"\n                                        + property\n                                        + \"' is already defined as \"\n                                        + existingValue\n                                        + \", but the configuration property '\"\n                                        + field.name()\n                                        + \"' defines a different value '\"\n                                        + value\n                                        + \"'\";\n                    }\n                    throw new DebeziumException(msg);\n                }\n                // Otherwise, there was an existing property, and the value is exactly the same (so\n                // do nothing!)\n            }\n        }\n    }\n\n    /**\n     * Read the Ssl Version session variable.\n     *\n     * @return the session variables that are related to sessions ssl version\n     */\n    protected String getSessionVariableForSslVersion() {\n        final String SSL_VERSION = \"Ssl_version\";\n        LOGGER.debug(\"Reading MySQL Session variable for Ssl Version\");\n        Map<String, String> sessionVariables =\n                querySystemVariables(SQL_SHOW_SESSION_VARIABLE_SSL_VERSION);\n        if (!sessionVariables.isEmpty() && sessionVariables.containsKey(SSL_VERSION)) {","sourceCodeStart":215,"sourceCodeEnd":251,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/io/debezium/connector/mysql/MySqlConnection.java#L215-L251","documentation":"MySqlConnection.setSystemProperty applies values from MySqlSystemVariables/connector config into JVM system properties. It throws this DebeziumException when a system or JVM property already exists with a value that differs from the one the configuration field specifies. This guards against silently overriding conflicting settings (e.g. timezone or character-set properties set twice with different values).","triggerScenarios":"Calling setSystemProperty (during MySqlConnection configuration) when Java system properties contain the same key as a config field (MySqlSystemVariables field) but with a different value.","commonSituations":"JVM launched with -DserverTimezone=UTC while connector config sets a different timezone; duplicated settings between application properties and connector configuration; environment differs from the documented defaults after an upgrade.","solutions":["Align the JVM system property value (-Dkey=value) with the connector configuration value, or remove the JVM-level property","Update the connector configuration field so it matches the already-defined system property","Decide on one source of truth for the setting and only set it there"],"exampleFix":"// before\n// JVM: -DcharacterEncoding=latin1, config sets UTF-8\nbuilder.withProperty(\"characterEncoding\", \"UTF-8\");\n// after: make values consistent\n// JVM: -DcharacterEncoding=UTF-8\nbuilder.withProperty(\"characterEncoding\", \"UTF-8\");","handlingStrategy":"validation","validationCode":"String existing = System.getProperty(\"characterEncoding\"); if (existing != null && !existing.equals(configValue)) { throw new IllegalStateException(\"system property characterEncoding=\" + existing + \" conflicts with config value \" + configValue); }","typeGuard":null,"tryCatchPattern":"try { connection.start(); } catch (DebeziumException e) { if (e.getMessage().contains(\"is already defined\")) { /* resolve conflicting property values */ } }","preventionTips":["Keep one source of truth: set DB-related settings either in JVM flags or connector config, not both","Document required -D flags for your deployment","Audit System.getProperties() for DB keys at startup"],"tags":["mysql","configuration","system-properties","conflict"],"backgroundTag":"conflicting-config-options","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"}