quarkusio/quarkus · error · IllegalArgumentException

Unknown JAR package type '${value}'

Error message

Unknown JAR package type '${value}'

What it means

PackageConfig.JarType.fromString throws this IllegalArgumentException when a string does not correspond to any registered JAR package type. It converts configuration values (e.g. quarkus.package.jar.type) into the JarType enum-like constant, rejecting unknown names.

Source

Thrown at core/deployment/src/main/java/io/quarkus/deployment/pkg/PackageConfig.java:422

            /**
             * {@return the name of this output type}
             */
            @Override
            public String toString() {
                return names.get(0);
            }

            /**
             * {@return the <code>JarType</code> for the given string}
             *
             * @param value the string to look up
             * @throws IllegalArgumentException if the string does not correspond to a valid JAR type
             */
            public static JarType fromString(String value) {
                JarType jarOutputType = byName.get(value);
                if (jarOutputType == null) {
                    throw new IllegalArgumentException("Unknown JAR package type '" + value + "'");
                }
                return jarOutputType;
            }
        }
    }

    /**
     * Configuration for the decompiler.
     */
    @ConfigGroup
    interface DecompilerConfig {
        /**
         * Enable decompilation of generated and transformed bytecode into a filesystem.
         */
        @WithDefault("false")
        boolean enabled();

        /**

View on GitHub (pinned to e1c734241f)

Solutions

  1. Set quarkus.package.jar.type to a valid value such as fast-jar, legacy-jar, or uber-jar — matching the exact spelling for your Quarkus version.
  2. Check the PackageConfig.JarType class in your Quarkus version for the accepted names.
  3. Fix any typos, casing, or trailing whitespace in the configured value.

Example fix

// before (application.properties)
quarkus.package.jar.type=uberjar
// after
quarkus.package.jar.type=uber-jar
Defensive patterns

Strategy: validation

Validate before calling

Set<String> valid = Set.of("fast-jar", "legacy-jar", "uber-jar", "mutable-jar");
String type = System.getProperty("quarkus.package.jar.type", "fast-jar");
if (!valid.contains(type)) throw new IllegalArgumentException("Unknown jar type: " + type);

Try / catch

try {
    JarType t = JarType.fromString(value);
} catch (IllegalArgumentException e) {
    LOG.errorf("quarkus.package.jar.type='%s' is invalid; use one of: fast-jar, legacy-jar, uber-jar", value);
}

Prevention

When it happens

Trigger: Setting quarkus.package.jar.type (or programmatically calling JarType.fromString) with a misspelled or unsupported value such as 'fast-jar ' (trailing space), 'uberjar', 'legacy-jar' in a Quarkus version where that name changed, or arbitrary invalid text.

Common situations: Typo in application.properties; following an older tutorial whose jar type names no longer exist; copying config from a project using a different Quarkus version; case mismatch in the type name.

Understand the failure class

Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/9beb8650e9dc1efb. Report an issue: GitHub.