{"record":{"id":"d86b476e8ea814f7","repo":"apache/iceberg","slug":"found-unsupported-flink-versions","errorCode":null,"errorMessage":"Found unsupported Flink versions: ","messagePattern":"Found unsupported Flink versions: ","errorType":"console","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"settings.gradle","lineNumber":84,"sourceCode":"project(':bigquery').name = 'iceberg-bigquery'\nproject(':dell').name = 'iceberg-dell'\nproject(':snowflake').name = 'iceberg-snowflake'\nproject(':delta-lake').name = 'iceberg-delta-lake'\nproject(':open-api').name = 'iceberg-open-api'\nproject(':mr').name = 'iceberg-mr'\n\nif (null != System.getProperty(\"allModules\")) {\n  System.setProperty(\"flinkVersions\", System.getProperty(\"knownFlinkVersions\"))\n  System.setProperty(\"sparkVersions\", System.getProperty(\"knownSparkVersions\"))\n  System.setProperty(\"kafkaVersions\", System.getProperty(\"knownKafkaVersions\"))\n}\n\nList<String> knownFlinkVersions = System.getProperty(\"knownFlinkVersions\").split(\",\")\nString flinkVersionsString = System.getProperty(\"flinkVersions\") != null ? System.getProperty(\"flinkVersions\") : System.getProperty(\"defaultFlinkVersions\")\nList<String> flinkVersions = flinkVersionsString != null && !flinkVersionsString.isEmpty() ? flinkVersionsString.split(\",\") : []\n\nif (!knownFlinkVersions.containsAll(flinkVersions)) {\n  throw new GradleException(\"Found unsupported Flink versions: \" + (flinkVersions - knownFlinkVersions))\n}\n\nList<String> knownSparkVersions = System.getProperty(\"knownSparkVersions\").split(\",\")\nString sparkVersionsString = System.getProperty(\"sparkVersions\") != null ? System.getProperty(\"sparkVersions\") : System.getProperty(\"defaultSparkVersions\")\nList<String> sparkVersions = sparkVersionsString != null && !sparkVersionsString.isEmpty() ? sparkVersionsString.split(\",\") : []\n\nif (!knownSparkVersions.containsAll(sparkVersions)) {\n  throw new GradleException(\"Found unsupported Spark versions: \" + (sparkVersions - knownSparkVersions))\n}\n\nList<String> knownKafkaVersions = System.getProperty(\"knownKafkaVersions\").split(\",\")\nString kafkaVersionsString = System.getProperty(\"kafkaVersions\") != null ? System.getProperty(\"kafkaVersions\") : System.getProperty(\"defaultKafkaVersions\")\nList<String> kafkaVersions = kafkaVersionsString != null && !kafkaVersionsString.isEmpty() ? kafkaVersionsString.split(\",\") : []\n\nif (!knownKafkaVersions.containsAll(kafkaVersions)) {\n  throw new GradleException(\"Found unsupported Kafka versions: \" + (kafkaVersions - knownKafkaVersions))\n}\n","sourceCodeStart":66,"sourceCodeEnd":102,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/settings.gradle#L66-L102","documentation":"settings.gradle validates the requested Flink versions against the knownFlinkVersions system property. Any requested version (from -DflinkVersions or the default) not present in the known list causes a GradleException listing the unsupported versions, so the build never configures modules for Flink versions Iceberg cannot build.","triggerScenarios":"Running Gradle with -DflinkVersions=1.17 (or another retired/unreleased version) that is not in knownFlinkVersions; also triggered if knownFlinkVersions is misconfigured in gradle.properties.","commonSituations":"Building an older Iceberg branch with flags copied from a newer one (or vice versa); trying to add support for a brand-new Flink release before the build was updated; typos like 'flink-1.19' vs '1.19'.","solutions":["Use only versions listed in knownFlinkVersions (check gradle.properties for the supported set).","Omit -DflinkVersions to use defaultFlinkVersions.","If adding a new Flink version intentionally, add it to knownFlinkVersions and update the Flink module build logic and CI matrix.","Fix typos in the version string (e.g. '1,18' vs '1.18')."],"exampleFix":"// before\n./gradlew build -DflinkVersions=1.16\n// after\n./gradlew build -DflinkVersions=1.19,1.20","handlingStrategy":"validation","validationCode":"KNOWN=$(grep knownFlinkVersions gradle.properties | cut -d= -f2); for v in $(echo $FLINK_VERSIONS | tr ',' ' '); do [[ \",$KNOWN,\" == *\",$v,\"* ]] || echo \"Unsupported Flink: $v\"; done","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Read supported Flink versions from gradle.properties instead of hardcoding them in scripts.","Omit -DflinkVersions unless you need to restrict the build.","Update knownFlinkVersions and CI together when adding Flink support."],"tags":["gradle","flink","version-support","configuration"],"backgroundTag":"invalid-enum-value","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}