{"record":{"id":"97e706b6f49afef4","repo":"GoogleContainerTools/jib","slug":"extension-extension-getclass-getsimplename","errorCode":null,"errorMessage":"extension ${extension.getClass().getSimpleName()} does not expect extension-specific configuration; remove the inapplicable 'pluginExtension.configuration' from Gradle build script","messagePattern":"extension (.+?) does not expect extension-specific configuration; remove the inapplicable 'pluginExtension\\.configuration' from Gradle build script","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/GradleProjectProperties.java","lineNumber":503,"sourceCode":"          ex);\n    }\n  }\n\n  // Unchecked casting: \"getExtraConfiguration().get()\" (Object) to Action<T> and \"extension\"\n  // (JibGradlePluginExtension<?>) to JibGradlePluginExtension<T> where T is the extension-defined\n  // config type (as requested by \"JibGradlePluginExtension.getExtraConfigType()\").\n  @SuppressWarnings({\"unchecked\"})\n  private <T> ContainerBuildPlan runPluginExtension(\n      Optional<Class<T>> extraConfigType,\n      JibGradlePluginExtension<?> extension,\n      ExtensionConfiguration config,\n      ContainerBuildPlan buildPlan)\n      throws JibPluginExtensionException {\n    T extraConfig = null;\n    Optional<Object> configs = config.getExtraConfiguration();\n    if (configs.isPresent()) {\n      if (!extraConfigType.isPresent()) {\n        throw new IllegalArgumentException(\n            \"extension \"\n                + extension.getClass().getSimpleName()\n                + \" does not expect extension-specific configuration; remove the inapplicable \"\n                + \"'pluginExtension.configuration' from Gradle build script\");\n      } else {\n        // configs.get() is of type Action, so this cast always succeeds.\n        // (Note generic <T> is erased at runtime.)\n        Action<T> action = (Action<T>) configs.get();\n        extraConfig = project.getObjects().newInstance(extraConfigType.get(), project);\n        action.execute(extraConfig);\n      }\n    }\n\n    try {\n      return ((JibGradlePluginExtension<T>) extension)\n          .extendContainerBuildPlan(\n              buildPlan,\n              config.getProperties(),","sourceCodeStart":485,"sourceCodeEnd":521,"githubUrl":"https://github.com/GoogleContainerTools/jib/blob/fb949e2676afbbd7dd7a1ef61e20251931325654/jib-gradle-plugin/src/main/java/com/google/cloud/tools/jib/gradle/GradleProjectProperties.java#L485-L521","documentation":"runPluginExtension throws IllegalArgumentException when an extension-specific configuration block ('pluginExtension.configuration') is provided in the Gradle build script but the configured extension declares no extra configuration type (extraConfigType is empty). Extensions that do not accept configuration cannot receive one, so Jib fails fast.","triggerScenarios":"In build.gradle: jib { pluginExtensions { pluginExtension { implementation = '...'; configuration { ... } } } } where the extension class does not implement JibGradlePluginExtension with an extra configuration type.","commonSituations":"Copying a configuration block from documentation for a different extension; adding a configuration closure to a built-in extension like jib-spring-boot that takes none; leftover config after switching extension implementations.","solutions":["Remove the 'configuration { ... }' block from the pluginExtension declaration","If configuration is needed, verify the extension actually supports extra configuration and you are using its documented configuration type","Check the extension's class name in 'implementation' matches the one the documentation shows for the configuration example"],"exampleFix":"// before\njib { pluginExtensions { pluginExtension {\n  implementation = 'com.google.cloud.tools.jib.gradle.extension.springboot.JibSpringBootExtension'\n  configuration { someOption = true } // not supported\n} } }\n// after: drop the configuration block\njib { pluginExtensions { pluginExtension {\n  implementation = 'com.google.cloud.tools.jib.gradle.extension.springboot.JibSpringBootExtension'\n} } }","handlingStrategy":"validation","validationCode":"// only add a configuration block if the extension documents one\n// quick check in build.gradle:\ndef ext = project.extensions.getByType(com.google.cloud.tools.jib.gradle.JibExtension)\nassert !jib.pluginExtensions.collect { it.configuration }.contains(null) || true // review declarations manually","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Add pluginExtension.configuration only for extensions that expose an extra-configuration type","Copy configuration examples from the exact extension's documentation","Remove leftover configuration blocks when swapping extension implementations"],"tags":["jib","gradle","plugin-extension","configuration"],"backgroundTag":"unsupported-config-value","analyzedSha":"fb949e2676afbbd7dd7a1ef61e20251931325654","analyzedAt":"2026-09-06T14:04:09.491Z","contentChangedAt":"2026-09-06T14:04:09.491Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}