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

  1. Remove the <pluginExtension><configuration> block from the jib-maven-plugin configuration in pom.xml.
  2. Verify the extension actually supports extension-specific configuration (check its getExtraConfigType/README) before adding <configuration>.
  3. Move the settings into regular jib plugin configuration or application properties if the extension reads configuration from elsewhere.
  4. 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

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


AI-assisted analysis of GoogleContainerTools/jib@fb949e2676 (2026-09-06). Data as JSON: /api/errors/084e091191437e9c. Report an issue: GitHub.