{"record":{"id":"6b8545a47b1c7e89","repo":"quarkusio/quarkus","slug":"quarkus-extension-dependency-verification-error-s","errorCode":null,"errorMessage":"Quarkus Extension Dependency Verification Error. See logs below","messagePattern":"Quarkus Extension Dependency Verification Error\\. See logs below","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ValidateExtensionTask.java","lineNumber":147,"sourceCode":"            List<ArtifactKey> missingDeploymentArtifacts) {\n        Logger log = getLogger();\n        log.error(\"Quarkus Extension Dependency Verification Error\");\n\n        if (!invalidRuntimeArtifacts.isEmpty()) {\n            log.error(\"The following deployment artifact(s) appear on the runtime classpath: \");\n            for (ArtifactKey invalidRuntimeArtifact : invalidRuntimeArtifacts) {\n                log.error(\"- \" + invalidRuntimeArtifact);\n            }\n        }\n\n        if (!missingDeploymentArtifacts.isEmpty()) {\n            log.error(\"The following deployment artifact(s) were found to be missing in the deployment module: \");\n            for (ArtifactKey missingDeploymentArtifact : missingDeploymentArtifacts) {\n                log.error(\"- \" + missingDeploymentArtifact);\n            }\n        }\n\n        throw new GradleException(\"Quarkus Extension Dependency Verification Error. See logs below\");\n    }\n\n    private static ArtifactKey toAppArtifactKey(ResolvedModuleVersion artifactId) {\n        return ArtifactKey.ga(artifactId.getId().getGroup(), artifactId.getId().getName());\n    }\n}\n","sourceCodeStart":129,"sourceCodeEnd":154,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-extension-plugin/src/main/java/io/quarkus/extension/gradle/tasks/ValidateExtensionTask.java#L129-L154","documentation":"Thrown by ValidateExtensionTask.printValidationErrors after logging all dependency-verification problems found while validating a Quarkus extension build. It signals that the extension's runtime/deployment module artifact sets failed validation — most commonly deployment artifacts listed as dependencies of the runtime module or missing from the deployment module — and details are in the logged output above the exception.","triggerScenarios":"validateExtension runs printValidationErrors after collecting problems such as missingDeploymentArtifacts non-empty (deployment artifacts expected in the deployment module are absent) or other mismatched runtime/deployment dependency groupings.","commonSituations":"Adding a runtime dependency without the corresponding deployment artifact in the deployment module's build.gradle, refactoring an extension so a deployment dependency was dropped, or copying dependency blocks between runtime and deployment modules incorrectly.","solutions":["Read the log lines above the exception: add each listed missing deployment artifact as a deployment dependency in the deployment module (quarkus-<name>-deployment) build.gradle.","Ensure every runtime dependency that requires one has a matching deployment artifact (group:artifact-deployment).","Verify you did not accidentally declare deployment artifacts in the runtime module; keep runtime-only deps there.","Re-run ./gradlew validateExtension after fixes until validation passes."],"exampleFix":"// before: deployment module build.gradle missing a dep\ndependencies { }\n// after\ndependencies {\n  implementation project(':my-runtime')\n  implementation 'io.quarkus:quarkus-arc-deployment'\n}/","handlingStrategy":"validation","validationCode":"// before validateExtension, check every runtime dep has a deployment counterpart\ndef runtimeDeps = project.configurations.getByName('implementation').dependencies\nruntimeDeps.findAll { it.group?.startsWith('io.quarkus') && !it.name.endsWith('-deployment') }.each {\n  def deployName = \"${it.name}-deployment\"\n  logger.warn(\"Ensure deployment artifact ${it.group}:${deployName} is declared in the deployment module\")\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["For every runtime dependency that needs build-time processing, add its -deployment artifact to the deployment module.","Keep runtime and deployment dependency blocks in sync; review both in PRs.","Run ./gradlew validateExtension locally before pushing extension changes.","Follow the standard Quarkus extension template when adding dependencies."],"tags":["gradle","dependency-verification","extension","build"],"backgroundTag":"missing-deployment-dependency","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"}