quarkusio/quarkus · error · GradleException

Cannot find deployment project for extension ${extensionArti

Error message

Cannot find deployment project for extension ${extensionArtifactId} at path ${deploymentProjectPath}

What it means

When a local extension project's quarkus { } configuration declares its deployment module (ConfigurationUtils.getDeploymentModule), createExtensionDependency resolves that path to a local Project via ToolingUtils.findLocalProject. If the declared deployment project path cannot be found in the reachable build (wrong path, project not included, or lives in an unlinked included build), a GradleException is thrown naming both the extension artifact and the missing deployment path.

Source

Thrown at devtools/gradle/gradle-model/src/main/java/io/quarkus/gradle/tooling/dependency/DependencyUtils.java:231

    private static ProjectExtensionDependency createExtensionDependency(
            Project project,
            ModuleVersionIdentifier extensionArtifactId,
            Project extensionProject,
            @Nullable Object extensionConfiguration,
            @Nullable Properties extensionDescriptor,
            boolean isIncludedBuild) {
        if (extensionConfiguration == null && extensionDescriptor == null) {
            throw new IllegalArgumentException("both extensionConfiguration and extensionDescriptor are null");
        }

        Project deploymentProject = null;

        if (extensionConfiguration != null) {
            final String deploymentProjectPath = ConfigurationUtils.getDeploymentModule(extensionConfiguration).get();
            deploymentProject = ToolingUtils.findLocalProject(extensionProject, deploymentProjectPath);
            if (deploymentProject == null) {
                throw new GradleException("Cannot find deployment project for extension " + extensionArtifactId + " at path "
                        + deploymentProjectPath);
            }
        } else if (extensionDescriptor.containsKey(BootstrapConstants.PROP_DEPLOYMENT_ARTIFACT)) {
            final ArtifactCoords deploymentArtifact = ArtifactCoords
                    .fromString(extensionDescriptor.getProperty(BootstrapConstants.PROP_DEPLOYMENT_ARTIFACT));
            deploymentProject = ToolingUtils.findLocalProject(project, deploymentArtifact);

            if (deploymentProject == null) {
                throw new GradleException("Cannot find deployment project for extension " + extensionArtifactId
                        + " with artifact coordinates " + deploymentArtifact);
            }
        }

        final List<Dependency> conditionalDependencies = new ArrayList<>(0);
        final List<Dependency> conditionalDevDependencies = new ArrayList<>(0);
        final List<ArtifactKey> dependencyConditions = new ArrayList<>(0);

        if (extensionConfiguration != null) {

View on GitHub (pinned to e1c734241f)

Solutions

  1. Check the deploymentModule path in the extension project's build.gradle matches an actual project (include it in settings.gradle if missing)
  2. Verify the deployment project exists and is named e.g. <ext>-deployment in the same build
  3. If the extension lives in an included build, ensure both runtime and deployment projects are in that included build and the build is linked properly
  4. Run ./gradlew projects to list resolvable project paths and compare with the error message
  5. Clear configuration cache / stop daemon if the project was recently renamed

Example fix

// before
quarkus { deploymentModule = ':my-ext-deployment' } // project does not exist
// after (settings.gradle)
include ':my-ext-deployment'
// build.gradle
quarkus { deploymentModule = ':my-ext-deployment' }
Defensive patterns

Strategy: validation

Validate before calling

String depPath = extProject.getExtensions()
    .findByName("quarkus") != null ? getDeploymentModulePath(extProject) : null;
if (depPath != null && extProject.getRootProject().findProject(depPath) == null) {
    throw new IllegalStateException("deploymentModule path not found: " + depPath);

Try / catch

try {
    var dep = DependencyUtils.getProjectExtensionDependencyOrNull(project, path, buildPath);
} catch (GradleException e) {
    if (e.getMessage().startsWith("Cannot find deployment project for extension")) {
        // check settings.gradle includes and the deploymentModule path
    } else throw e;
}

Prevention

When it happens

Trigger: getExtensionInfoOrNull -> createExtensionDependency for an extension project whose quarkus.deploymentModule path (e.g. ':my-ext-deployment') is not a project visible to findLocalProject (not in settings.gradle includes, or wrong path in an included build).

Common situations: Typos in the deploymentModule path; deployment subproject removed/renamed while the runtime project's config still references it; extension projects in included builds where the deployment project is in a different build; forgetting the include in settings.gradle.

Related errors


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