Luke Chen created KAFKA-19509: --------------------------------- Summary: Improve error message when release version is wrong Key: KAFKA-19509 URL: https://issues.apache.org/jira/browse/KAFKA-19509 Project: Kafka Issue Type: Improvement Affects Versions: 4.1.0 Reporter: Luke Chen
When running kafka-storage.sh, if the release-version is wrongly set, we'll get the error messages including un-released metadata version: {code:java} > bin/kafka-storage.sh format --standalone -t kEzc4vk3TIKhCQKsh40klQ -c > config/server.properties --release-version 4.0-IV4 Exception in thread "main" java.lang.IllegalArgumentException: Version 4.0-IV4 is not a valid version. The minimum version is 3.3-IV3 and the maximum version is 4.2-IV1 at org.apache.kafka.server.common.MetadataVersion.lambda$fromVersionString$0(MetadataVersion.java:356) at java.base/java.util.Optional.orElseThrow(Optional.java:403) at org.apache.kafka.server.common.MetadataVersion.fromVersionString(MetadataVersion.java:354) at kafka.tools.StorageTool$.$anonfun$runFormatCommand$1(StorageTool.scala:133) at scala.Option.foreach(Option.scala:437) at kafka.tools.StorageTool$.runFormatCommand(StorageTool.scala:132) at kafka.tools.StorageTool$.execute(StorageTool.scala:86) at kafka.tools.StorageTool$.main(StorageTool.scala:46) at kafka.tools.StorageTool.main(StorageTool.scala) {code} One idea is to improve this by relying on the internal config: `unstable.feature.versions.enable` to decide if we want to log the unstable feature versions. The other thought is we can mimic what Kafka-feature.sh did: {code:java} > bin/kafka-features.sh --bootstrap-server localhost:9092 upgrade > --release-version 4.0-IV4 [2025-07-15 16:31:53,280] WARN [AdminClient clientId=adminclient-1] Unknown metadata.version 4.1-IV4. Supported metadata.version are 3.3-IV3, 3.4-IV0, 3.5-IV0, 3.5-IV1, 3.5-IV2, 3.6-IV0, 3.6-IV1, 3.6-IV2, 3.7-IV0, 3.7-IV1, 3.7-IV2, 3.7-IV3, 3.7-IV4, 3.8-IV0, 3.9-IV0, 4.0-IV0, 4.0-IV1, 4.0-IV2, 4.0-IV3 {code} It didn't output the supported versions to users. -- This message was sent by Atlassian Jira (v8.20.10#820010)