#14386·graal

[GR-79476][Native Image] RuntimeOptionFeature fails on multilayer builds

Author: thejudge156Created Sep 7, 2026Updated Sep 9, 2026
Labelsbugnative-image

Describe the Issue

Trying a multi-layer (as in layer on layer) build on Oracle GraalVM 25.3.4.1+1.1 errors with this.

I assume the fix is here, probably need an else if statement checking buildingImageLayer().

Line here.

Using the latest version of GraalVM can resolve many issues.

GraalVM Version

Oracle GraalVM 25.3.4.1+1.1

Operating System and Version

Linux X86_64

Build Command

`-H:CLibraryPath=/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/graalvm-25.3.4.1+1.1/lib/svm/clibraries/linux-amd64/glibc,/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/graalvm-25.3.4.1+1.1/lib/svm/clibraries/linux-amd64,/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/graalvm-25.3.4.1+1.1/lib/svm/clibraries -H:Path@driver=/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/folia-server/build/native/layers/AxiomPaperPlugin-5.0.4-for-MC1.21.11 -H:+UnlockExperimentalVMOptions@user -H:LayerCreate@user=AxiomPaperPlugin-5.0.4-for-MC1.21.11.nil,path=/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/test-plugins/AxiomPaperPlugin-5.0.4-for-MC1.21.11.jar -H:LayerUse@user=/var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/folia-server/build/native/layers/folia-1.21.11-R0.1-SNAPSHOT/folia-1.21.11-R0.1-SNAPSHOT.nil -H:ReachabilityMetadataResources@file:///var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/folia-server/build/resources/main/META-INF/native-image/me.judge/reachability-metadata.json+api=META-INF/native-image/me.judge/reachability-metadata.json -H:+UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-ffm/3.27.1/ef894cf08d9375c7d6935f44e83583ee366f98b2/jline-terminal-ffm-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-ffm/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-ffm/3.27.1/ef894cf08d9375c7d6935f44e83583ee366f98b2/jline-terminal-ffm-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-ffm/native-image.properties=META-INF/native-image/org.jline/jline-terminal-ffm/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-ffm/3.27.1/ef894cf08d9375c7d6935f44e83583ee366f98b2/jline-terminal-ffm-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-ffm/native-image.properties=META-INF/native-image/org.jline/jline-terminal-ffm/reflection-config.json -H:-UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-ffm/3.27.1/ef894cf08d9375c7d6935f44e83583ee366f98b2/jline-terminal-ffm-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-ffm/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-ffm/3.27.1/ef894cf08d9375c7d6935f44e83583ee366f98b2/jline-terminal-ffm-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-ffm/resource-config.json+api=META-INF/native-image/org.jline/jline-terminal-ffm/resource-config.json -H:+UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.27.1/b5c841eabc71895061b8850cc8c2b988aa045952/jline-terminal-jni-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.27.1/b5c841eabc71895061b8850cc8c2b988aa045952/jline-terminal-jni-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties=META-INF/native-image/org.jline/jline-terminal-jni/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.27.1/b5c841eabc71895061b8850cc8c2b988aa045952/jline-terminal-jni-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties=META-INF/native-image/org.jline/jline-terminal-jni/reflection-config.json -H:-UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.27.1/b5c841eabc71895061b8850cc8c2b988aa045952/jline-terminal-jni-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-jni/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal-jni/3.27.1/b5c841eabc71895061b8850cc8c2b988aa045952/jline-terminal-jni-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal-jni/resource-config.json+api=META-INF/native-image/org.jline/jline-terminal-jni/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.25.2/d4d0ad2e51e03e531f784891fbfff1bae1e13a12/log4j-core-2.25.2.jar!/META-INF/native-image/org.apache.logging.log4j/log4j-core/reflect-config.json+api=META-INF/native-image/org.apache.logging.log4j/log4j-core/reflect-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.25.2/d4d0ad2e51e03e531f784891fbfff1bae1e13a12/log4j-core-2.25.2.jar!/META-INF/native-image/log4j-generated/org.apache.logging.log4j/log4j-core/reflect-config.json+api=META-INF/native-image/log4j-generated/org.apache.logging.log4j/log4j-core/reflect-config.json -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.25.2/d4d0ad2e51e03e531f784891fbfff1bae1e13a12/log4j-core-2.25.2.jar!/META-INF/native-image/org.apache.logging.log4j/log4j-core/resource-config.json+api=META-INF/native-image/org.apache.logging.log4j/log4j-core/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-haproxy/4.2.7.Final/ee1aae32415a5cf4d963fd6f4a278b317e29fdf3/netty-codec-haproxy-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-haproxy/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-codec-haproxy/generated/handlers/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/wrapper/MainWrapper-1.0-SNAPSHOT.jar!/META-INF/native-image/me.judge/mainwrapper/native-image.properties+api=me.judge.mainwrapper.Main:build_time -H:Features@jar:file:///var/lib/jenkins/workspace/lia-Production_ver_1.21.11-layer/wrapper/MainWrapper-1.0-SNAPSHOT.jar!/META-INF/native-image/me.judge/mainwrapper/native-image.properties+api=me.judge.mainwrapper.PreserveFeature -H:EnableURLProtocols@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.xerial/sqlite-jdbc/3.49.1.0/145d3a6819b86f3618728273329392269104c8c7/sqlite-jdbc-3.49.1.0.jar!/META-INF/native-image/org.xerial/sqlite-jdbc/native-image.properties+api=jar -H:Features@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.xerial/sqlite-jdbc/3.49.1.0/145d3a6819b86f3618728273329392269104c8c7/sqlite-jdbc-3.49.1.0.jar!/META-INF/native-image/org.xerial/sqlite-jdbc/native-image.properties+api=org.sqlite.nativeimage.SqliteJdbcFeature -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.25.2/292c1a2b1702f1e1e3adb13e1c57e5bff60335ff/log4j-api-2.25.2.jar!/META-INF/native-image/org.apache.logging.log4j/log4j-api/resource-config.json+api=META-INF/native-image/org.apache.logging.log4j/log4j-api/resource-config.json -H:+UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.27.1/49c957485701003855547d0d262a80bdced17613/jline-terminal-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.27.1/49c957485701003855547d0d262a80bdced17613/jline-terminal-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal/native-image.properties=META-INF/native-image/org.jline/jline-terminal/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.27.1/49c957485701003855547d0d262a80bdced17613/jline-terminal-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal/native-image.properties=META-INF/native-image/org.jline/jline-terminal/reflection-config.json -H:-UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.27.1/49c957485701003855547d0d262a80bdced17613/jline-terminal-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-terminal/3.27.1/49c957485701003855547d0d262a80bdced17613/jline-terminal-3.27.1.jar!/META-INF/native-image/org.jline/jline-terminal/resource-config.json+api=META-INF/native-image/org.jline/jline-terminal/resource-config.json -H:+UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/native-image.properties -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/native-image.properties=META-INF/native-image/org.jline/jline-native/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/native-image.properties=META-INF/native-image/org.jline/jline-native/reflection-config.json -H:JNIConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/native-image.properties=META-INF/native-image/org.jline/jline-native/jni-config.json -H:-UnlockExperimentalVMOptions@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/native-image.properties -H:JNIConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/jni-config.json+api=META-INF/native-image/org.jline/jline-native/jni-config.json -H:ResourceConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/org.jline/jline-native/3.27.1/d0b198908023385a089379a1c854aadc7a7dd99b/jline-native-3.27.1.jar!/META-INF/native-image/org.jline/jline-native/resource-config.json+api=META-INF/native-image/org.jline/jline-native/resource-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-base/4.2.7.Final/915e381ebabcf115f1c7ff7032d55c48afb50210/netty-codec-base-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-base/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-codec-base/generated/handlers/reflect-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.2.7.Final/83ea548981d0d8c4a98027cc1a6f9624f902e142/netty-transport-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-transport/reflect-config.json+api=META-INF/native-image/io.netty/netty-transport/reflect-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.2.7.Final/83ea548981d0d8c4a98027cc1a6f9624f902e142/netty-transport-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-transport/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-transport/generated/handlers/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.2.7.Final/5555ff561643bf2f8430fb57c24403c0efe15994/netty-buffer-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-buffer/native-image.properties+api=io.netty.buffer.PooledByteBufAllocator:run_time,io.netty.buffer.AdaptiveByteBufAllocator:run_time,io.netty.buffer.ByteBufAllocator:run_time,io.netty.buffer.ByteBufUtil:run_time,io.netty.buffer.AbstractReferenceCountedByteBuf:run_time -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.2.7.Final/5555ff561643bf2f8430fb57c24403c0efe15994/netty-buffer-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-buffer/reflect-config.json+api=META-INF/native-image/io.netty/netty-buffer/reflect-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/com.mojang/logging/1.6.11/fd147240733010c158249d986323f9ef98977fe/logging-1.6.11.jar!/META-INF/native-image/log4j-generated/81280461/reflect-config.json+api=META-INF/native-image/log4j-generated/81280461/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-compression/4.2.7.Final/572341bc1ca90fd9d6e47f1d2694aab5258566e9/netty-codec-compression-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-compression/native-image.properties+api=io.netty.handler.codec.compression.BrotliDecoder:run_time -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-compression/4.2.7.Final/572341bc1ca90fd9d6e47f1d2694aab5258566e9/netty-codec-compression-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-compression/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-codec-compression/generated/handlers/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.2.7.Final/b734c108854099c421fd94d92d9f865e4d4da853/netty-codec-http-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-http/native-image.properties+api=io.netty:build_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.2.7.Final/b734c108854099c421fd94d92d9f865e4d4da853/netty-codec-http-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-http/native-image.properties+api=io.netty.handler.codec.http.HttpObjectEncoder:run_time,io.netty.handler.codec.http.websocketx.WebSocket00FrameEncoder:run_time,io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder:run_time -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.2.7.Final/b734c108854099c421fd94d92d9f865e4d4da853/netty-codec-http-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-codec-http/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-codec-http/generated/handlers/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.AbstractReferenceCounted:run_time,io.netty.util.concurrent.GlobalEventExecutor:run_time,io.netty.util.concurrent.ImmediateEventExecutor:run_time,io.netty.util.concurrent.ScheduledFutureTask:run_time,io.netty.util.internal.ThreadLocalRandom:run_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.NetUtilSubstitutions$NetUtilLocalhost4LazyHolder:run_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.NetUtilSubstitutions$NetUtilLocalhost6LazyHolder:run_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.NetUtilSubstitutions$NetUtilLocalhostLazyHolder:run_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.NetUtilSubstitutions$NetUtilNetworkInterfacesLazyHolder:run_time -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/native-image.properties+api=io.netty.util.internal.CleanerJava25:build_time -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-common/reflect-config.json+api=META-INF/native-image/io.netty/netty-common/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.2.7.Final/7ad8a1f851e2e6fe93cdd091871fda2b81c03b5b/netty-handler-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-handler/native-image.properties+api=io.netty.handler.ssl.util.ThreadLocalInsecureRandom:run_time -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.2.7.Final/7ad8a1f851e2e6fe93cdd091871fda2b81c03b5b/netty-handler-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-handler/reflect-config.json+api=META-INF/native-image/io.netty/netty-handler/reflect-config.json -H:ReflectionConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.2.7.Final/7ad8a1f851e2e6fe93cdd091871fda2b81c03b5b/netty-handler-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-handler/generated/handlers/reflect-config.json+api=META-INF/native-image/io.netty/netty-handler/generated/handlers/reflect-config.json -H:ClassInitialization@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.2.7.Final/1075c09f48a78eef9d819fbfd9096b903fdd362a/netty-transport-classes-epoll-4.2.7.Final.jar!/META-INF/native-image/io.netty/netty-transport-classes-epoll/native-image.properties+api=io.netty.channel.epoll:run_time,io.netty.channel.unix.Limits:run_time,io.netty.channel.unix.IovArray:run_time,io.netty.channel.unix.Errors:run_time -H:JNIConfigurationResources@jar:file:///var/lib/jenkins/.gradle/caches/modules-2/files-2.1/io.netty