apache/iceberg · error · GradleException
Found unsupported Spark versions:
Error message
Found unsupported Spark versions:
What it means
settings.gradle validates requested Spark versions against knownSparkVersions. Any requested version (from -DsparkVersions or the default) missing from the known list throws this GradleException listing the unsupported versions, preventing configuration of Spark modules Iceberg cannot build.
Solutions
- Use only versions listed in knownSparkVersions (see gradle.properties).
- Omit -DsparkVersions to build with defaultSparkVersions.
- To add a new Spark version intentionally, add it to knownSparkVersions, the spark module settings, and the version catalog.
- Correct typos in the version list.
Example fix
// before ./gradlew build -DsparkVersions=3.1 // after ./gradlew build -DsparkVersions=3.4,3.5
Defensive patterns
Strategy: validation
Validate before calling
KNOWN=$(grep knownSparkVersions gradle.properties | cut -d= -f2); for v in $(echo $SPARK_VERSIONS | tr ',' ' '); do [[ ",$KNOWN," == *",$v,"* ]] || echo "Unsupported Spark: $v"; done
Prevention
- Check knownSparkVersions in gradle.properties before overriding -DsparkVersions.
- Use defaultSparkVersions for routine builds.
- Keep build flags for a branch consistent with that branch's gradle.properties.
When it happens
Trigger: Running Gradle with -DsparkVersions=2.4 (or any version not in knownSparkVersions); also triggered when gradle.properties' knownSparkVersions was not updated alongside defaultSparkVersions.
Common situations: Building an older Iceberg release with flags for a newer Spark; requesting a Spark version the branch predates; typos such as '3,5' instead of '3.5'.
Understand the failure class
Background: Invalid enum value errors: "Unknown type", "Invalid scope", "must be one of" — when a string is not on the library's allowed list — this error's family across 23 libraries.
Related errors
- Found unsupported Flink versions:
- Found unsupported Kafka versions:
- Found unsupported Scala version:
- Cannot parse order: parser is not an Iceberg ExtendedParser
- Cannot parse order: parser is not an Iceberg ExtendedParser
AI-assisted analysis of apache/iceberg@86d9c8fc54 (2026-09-12).
Data as JSON: /api/errors/2277833aa5c51b27.
Report an issue: GitHub.
Appendix: source
Thrown at settings.gradle:92
System.setProperty("flinkVersions", System.getProperty("knownFlinkVersions"))
System.setProperty("sparkVersions", System.getProperty("knownSparkVersions"))
System.setProperty("kafkaVersions", System.getProperty("knownKafkaVersions"))
}
List<String> knownFlinkVersions = System.getProperty("knownFlinkVersions").split(",")
String flinkVersionsString = System.getProperty("flinkVersions") != null ? System.getProperty("flinkVersions") : System.getProperty("defaultFlinkVersions")
List<String> flinkVersions = flinkVersionsString != null && !flinkVersionsString.isEmpty() ? flinkVersionsString.split(",") : []
if (!knownFlinkVersions.containsAll(flinkVersions)) {
throw new GradleException("Found unsupported Flink versions: " + (flinkVersions - knownFlinkVersions))
}
List<String> knownSparkVersions = System.getProperty("knownSparkVersions").split(",")
String sparkVersionsString = System.getProperty("sparkVersions") != null ? System.getProperty("sparkVersions") : System.getProperty("defaultSparkVersions")
List<String> sparkVersions = sparkVersionsString != null && !sparkVersionsString.isEmpty() ? sparkVersionsString.split(",") : []
if (!knownSparkVersions.containsAll(sparkVersions)) {
throw new GradleException("Found unsupported Spark versions: " + (sparkVersions - knownSparkVersions))
}
List<String> knownKafkaVersions = System.getProperty("knownKafkaVersions").split(",")
String kafkaVersionsString = System.getProperty("kafkaVersions") != null ? System.getProperty("kafkaVersions") : System.getProperty("defaultKafkaVersions")
List<String> kafkaVersions = kafkaVersionsString != null && !kafkaVersionsString.isEmpty() ? kafkaVersionsString.split(",") : []
if (!knownKafkaVersions.containsAll(kafkaVersions)) {
throw new GradleException("Found unsupported Kafka versions: " + (kafkaVersions - knownKafkaVersions))
}
List<String> knownScalaVersions = System.getProperty("knownScalaVersions").split(",")
String scalaVersion = System.getProperty("scalaVersion") != null ? System.getProperty("scalaVersion") : System.getProperty("defaultScalaVersion")
if (!knownScalaVersions.contains(scalaVersion)) {
throw new GradleException("Found unsupported Scala version: " + scalaVersion)
}
if (!flinkVersions.isEmpty()) {View on GitHub (pinned to 86d9c8fc54)