{"record":{"id":"8b17c6b27593de1b","repo":"quarkusio/quarkus","slug":"failed-to-remove-extensions-getextensionstoremov","errorCode":null,"errorMessage":"Failed to remove extensions + getExtensionsToRemove()","messagePattern":"Failed to remove extensions \\+ getExtensionsToRemove\\(\\)","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java","lineNumber":48,"sourceCode":"\n    @Input\n    public List<String> getExtensionsToRemove() {\n        return extensionsToRemove;\n    }\n\n    @TaskAction\n    public void removeExtension() {\n        Set<String> extensionsSet = getExtensionsToRemove()\n                .stream()\n                .flatMap(ext -> stream(ext.split(\",\")))\n                .map(String::trim)\n                .collect(toSet());\n        try {\n            new RemoveExtensions(getQuarkusProject(true))\n                    .extensions(extensionsSet)\n                    .execute();\n        } catch (Exception e) {\n            throw new GradleException(\"Failed to remove extensions \" + getExtensionsToRemove(), e);\n        }\n    }\n}\n","sourceCodeStart":30,"sourceCodeEnd":52,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusRemoveExtension.java#L30-L52","documentation":"QuarkusRemoveExtension.removeExtension builds the set of extensions to remove and executes RemoveExtensions against the QuarkusProject. Any Exception during execution (project setup, catalog resolution, or the removal itself) is wrapped as GradleException(\"Failed to remove extensions \" + getExtensionsToRemove()).","triggerScenarios":"Running ./gradlew quarkusRemoveExtension when the extension isn't installed, the platform catalog can't be resolved, the project build file can't be parsed/updated, or the project has no platform BOM (see related errors).","commonSituations":"Typo in the extension artifactId; removing an extension that was added as a direct dependency manually; network failure reaching the registry; mixed DSL build files breaking project parsing.","solutions":["Check the exact cause: run with --stacktrace/--info and address the wrapped exception (often registry or build-file parsing).","Verify the extension name/artifactId is installed: run ./gradlew quarkusListExtensions and match coordinates.","As a fallback, remove the dependency line from build.gradle manually."],"exampleFix":"// before\n./gradlew quarkusRemoveExtension --extensions=\"reactive-routes\"\n\n// after (correct artifact id)\n./gradlew quarkusRemoveExtension --extensions=\"vertx-http\"","handlingStrategy":"try-catch","validationCode":"// confirm the extension is present before attempting removal\ndef coords = 'io.quarkus:quarkus-vertx-http'\nassert configurations.implementation.allDependencies.any { \"${it.group}:${it.artifactId}\" == coords } : coords + ' not installed'","typeGuard":null,"tryCatchPattern":"try { ./gradlew quarkusRemoveExtension --extensions=... } catch (GradleException e) { if (e.message.startsWith('Failed to remove extensions')) { logger.error('Cause: ' + e.cause) /* handle root cause */ } }","preventionTips":["List installed extensions first with quarkusListExtensions and use exact artifact ids.","Run with --stacktrace to surface the underlying cause rather than guessing.","Keep the platform catalog resolvable (network/registry config healthy)."],"tags":["gradle","extensions","remove-dependency"],"backgroundTag":"extension-removal-failed","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}