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)

Reply via email to