{"record":{"id":"0e41f8672a8e2b1d","repo":"quarkusio/quarkus","slug":"failed-to-read-descriptor-of-projectartifact","errorCode":null,"errorMessage":"Failed to read descriptor of ${projectArtifact}","messagePattern":"Failed to read descriptor of (.+?)","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"independent-projects/extension-maven-plugin/src/main/java/io/quarkus/maven/ExtensionDescriptorMojo.java","lineNumber":1211,"sourceCode":"    }\n\n    private CollectRequest newCollectRuntimeDepsRequest() throws MojoExecutionException {\n        return newCollectRequest(new DefaultArtifact(project.getArtifact().getGroupId(),\n                project.getArtifact().getArtifactId(),\n                project.getArtifact().getClassifier(),\n                project.getArtifact().getArtifactHandler().getExtension(),\n                project.getArtifact().getVersion()));\n    }\n\n    private CollectRequest newCollectRequest(DefaultArtifact projectArtifact) throws MojoExecutionException {\n        final ArtifactDescriptorResult projectDescr;\n        try {\n            projectDescr = repoSystem.readArtifactDescriptor(repoSession,\n                    new ArtifactDescriptorRequest()\n                            .setArtifact(projectArtifact)\n                            .setRepositories(repos));\n        } catch (ArtifactDescriptorException e) {\n            throw new MojoExecutionException(\"Failed to read descriptor of \" + projectArtifact, e);\n        }\n\n        final CollectRequest request = new CollectRequest().setRootArtifact(projectArtifact)\n                .setRepositories(repos)\n                .setManagedDependencies(projectDescr.getManagedDependencies());\n        for (Dependency dep : projectDescr.getDependencies()) {\n            if (\"test\".equals(dep.getScope())\n                    || \"provided\".equals(dep.getScope())\n                    || dep.isOptional()) {\n                continue;\n            }\n            request.addDependency(dep);\n        }\n        return request;\n    }\n\n    private boolean isJarFile(final File f) {\n        return f != null && f.getName().endsWith(\".jar\") && f.exists() && !f.isDirectory();","sourceCodeStart":1193,"sourceCodeEnd":1229,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/extension-maven-plugin/src/main/java/io/quarkus/maven/ExtensionDescriptorMojo.java#L1193-L1229","documentation":"The mojo reads the Maven artifact descriptor (POM metadata) of the project artifact via repoSystem.readArtifactDescriptor. An ArtifactDescriptorException is wrapped as 'Failed to read descriptor of <artifact>'.","triggerScenarios":"readArtifactDescriptor fails because the project artifact's POM cannot be resolved or parsed — invalid pom, unavailable parent pom, or repository access errors.","commonSituations":"Broken parent POM resolution; invalid XML in a generated pom; missing repositories for parent imports; corrupted metadata in local repo.","solutions":["Validate the project pom: mvn validate and mvn help:effective-pom","Ensure parent POMs are resolvable (install local parents or fix repository config)","Clear corrupted metadata: delete the artifact dir in ~/.m2/repository and rebuild","Check the wrapped cause for the specific unresolvable parent or model problem"],"exampleFix":"<!-- before: broken parent reference -->\n<parent>\n  <groupId>x</groupId>\n  <artifactId>nonexistent-parent</artifactId>\n  <version>1.0</version>\n</parent>\n<!-- after: point to an installed/resolvable parent -->\n<parent>\n  <groupId>x</groupId>\n  <artifactId>existing-parent</artifactId>\n  <version>1.0</version>\n</parent>","handlingStrategy":"validation","validationCode":"mvn validate && mvn help:effective-pom -q","typeGuard":null,"tryCatchPattern":"try {\n  mojo.execute();\n} catch (MojoExecutionException e) {\n  if (e.getMessage().startsWith(\"Failed to read descriptor of\")) {\n    // fix pom/parent resolution before retrying\n  }\n}","preventionTips":["Validate poms in CI before descriptor generation","Ensure parent poms installed/resolvable","Keep local repo clean of corrupted metadata"],"tags":["maven","pom","descriptor"],"backgroundTag":"pom-resolution-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"}