GoogleContainerTools/jib · error · IllegalArgumentException
extension ${extension.getClass().getSimpleName()} does not e
Error message
extension ${extension.getClass().getSimpleName()} does not expect extension-specific configuration; remove the inapplicable <pluginExtension><configuration> from pom.xml What it means
A <pluginExtension><configuration> block was supplied in pom.xml for a Jib extension whose getExtraConfigType() returns Optional.empty(), i.e. the extension declares it accepts no extension-specific configuration. MavenProjectProperties.runPluginExtension detects this mismatch and throws IllegalArgumentException before invoking the extension.
Source
Thrown at jib-maven-plugin/src/main/java/com/google/cloud/tools/jib/maven/MavenProjectProperties.java:652
ex);
}
}
// Unchecked casting: "getExtraConfiguration()" (Optional<Object>) to Object<T> and "extension"
// (JibMavenPluginExtension<?>) to JibMavenPluginExtension<T> where T is the extension-defined
// config type (as requested by "JibMavenPluginExtension.getExtraConfigType()").
@SuppressWarnings({"unchecked"})
private <T> ContainerBuildPlan runPluginExtension(
Optional<Class<T>> extraConfigType,
JibMavenPluginExtension<?> extension,
ExtensionConfiguration config,
ContainerBuildPlan buildPlan)
throws JibPluginExtensionException {
Optional<T> extraConfig = Optional.empty();
Optional<Object> configs = config.getExtraConfiguration();
if (configs.isPresent()) {
if (!extraConfigType.isPresent()) {
throw new IllegalArgumentException(
"extension "
+ extension.getClass().getSimpleName()
+ " does not expect extension-specific configuration; remove the inapplicable "
+ "<pluginExtension><configuration> from pom.xml");
} else if (!extraConfigType.get().isInstance(configs.get())) {
throw new JibPluginExtensionException(
extension.getClass(),
"extension-specific <configuration> for "
+ extension.getClass().getSimpleName()
+ " is not of type "
+ extraConfigType.get().getName()
+ " but "
+ configs.get().getClass().getName()
+ "; specify the correct type with <pluginExtension><configuration "
+ "implementation=\""
+ extraConfigType.get().getName()
+ "\">");
} else {View on GitHub (pinned to fb949e2676)
Solutions
- Remove the <pluginExtension><configuration> block from the jib-maven-plugin configuration in pom.xml.
- Verify the extension actually supports extension-specific configuration (check its getExtraConfigType/README) before adding <configuration>.
- Move the settings into regular jib plugin configuration or application properties if the extension reads configuration from elsewhere.
- Align extension version with documentation — an upgrade/downgrade may have changed extra-config support.
Example fix
<!-- before -->
<pluginExtensions>
<pluginExtension>
<implementation>com.example.MyExtension</implementation>
<configuration implementation="com.example.MyConfig"><foo>bar</foo></configuration>
</pluginExtension>
</pluginExtensions>
<!-- after -->
<pluginExtensions>
<pluginExtension>
<implementation>com.example.MyExtension</implementation>
</pluginExtension>
</pluginExtensions> Defensive patterns
Strategy: validation
Validate before calling
// Before adding <pluginExtension><configuration>, check the extension supports extra config // boolean supportsExtraConfig = myExtension.getExtraConfigType().isPresent(); // false => do NOT add <configuration>
Try / catch
try {
// mvn jib:build with extensions
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("does not expect extension-specific configuration")) {
// remove the <pluginExtension><configuration> block from pom.xml
}
throw e;
} Prevention
- Consult the extension's README for whether it accepts <configuration> before adding one.
- Only add <pluginExtension><configuration> when copying from that extension's own docs.
- Diff pom.xml against the extension's documented example when upgrading versions.
When it happens
Trigger: Adding <pluginExtension><configuration implementation="...">...</configuration></pluginExtension> in the jib-maven-plugin <configuration> for an extension like jib-spring-boot or another extension that defines no extra configuration type.
Common situations: Copying extension configuration blocks from documentation/examples into a project whose extension doesn't support them; using a newer/older extension version where extra-config support was removed; confusing Jib global configuration with extension-specific configuration.
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
- extension-specific <configuration> for ${extension.getClass(
- error running extension '<extensionClassName>': <message>
- error running extension '<extensionClassName>': <message>
- extension configured but not discovered on Jib runtime class
- Incomplete <extraDirectories><paths> configuration; source d
AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06).
Data as JSON: /api/errors/084e091191437e9c.
Report an issue: GitHub.