quarkusio/quarkus · error · RuntimeException
Failed to resolve extension ${coords}
Error message
Failed to resolve extension ${coords} What it means
CreateProjectHelper.completeCatalog resolves user-supplied extension coordinates through Maven to inspect the extension jar. If Maven resolution throws BootstrapMavenException, it is rethrown as a RuntimeException with this message, meaning the requested extension artifact could not be downloaded or located in the configured repositories.
Source
Thrown at independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/CreateProjectHelper.java:78
*
* @param catalog original extension catalog
* @param extensions extra extensions to add to the catalog
* @param mvn Maven artifact resolver
* @return complete extension catalog
* @throws BootstrapMavenException in case of a failure to resolve extensions requested by the user
*/
public static ExtensionCatalog completeCatalog(ExtensionCatalog catalog, Collection<String> extensions,
MavenArtifactResolver mvn) {
ExtensionCatalog.Mutable mutableCatalog = null;
for (String extArg : extensions) {
if (isFullArtifactCoords(extArg)) {
var coords = ArtifactCoords.fromString(extArg.trim());
final Path extJar;
try {
extJar = mvn.resolve(new DefaultArtifact(coords.getGroupId(), coords.getArtifactId(),
coords.getClassifier(), coords.getType(), coords.getVersion())).getArtifact().getFile().toPath();
} catch (BootstrapMavenException e) {
throw new RuntimeException("Failed to resolve extension " + coords, e);
}
final Extension ext = ExtensionMetadataUtil.applyExtensionMetadata(
PathTree.ofDirectoryOrArchive(extJar), visit -> {
try {
return Extension.fromFile(visit.getPath());
} catch (IOException e) {
throw new IllegalStateException(
"Failed to parse Quarkus extension metadata " + visit.getPath());
}
});
if (ext != null) {
if (mutableCatalog == null) {
mutableCatalog = catalog.mutable();
}
var i = mutableCatalog.getExtensions().iterator();
boolean add = true;
while (i.hasNext()) {
final ArtifactCoords catalogCoords = i.next().getArtifact();View on GitHub (pinned to e1c734241f)
Solutions
- Verify the extension coordinates (groupId, artifactId, version) exist in the repository
- Check that the artifact version matches the Quarkus platform version or is published
- Ensure Maven repository settings (settings.xml, mirrors, proxies) allow resolution
- Test resolution manually with mvn dependency:get -Dartifact=group:artifact:version
Example fix
// before --extension-id=acme:com.acme:acme-extensions:9.9.9 // nonexistent version // after --extension-id=acme:com.acme:acme-extensions:1.0.0 // published version
Defensive patterns
Strategy: try-catch
Validate before calling
ArtifactCoords coords = ArtifactCoords.fromString(extArg.trim()); mvn.resolve(new DefaultArtifact(coords.getGroupId(), coords.getArtifactId(), coords.getClassifier(), coords.getType(), coords.getVersion())); // pre-check resolution
Try / catch
try { createProjectHelper.completeCatalog(...); } catch (RuntimeException e) { if (e.getMessage().startsWith("Failed to resolve extension")) { log.error("Check coordinates/repositories/offline state", e.getCause()); } } Prevention
- Verify coordinates with mvn dependency:get before generation
- Ensure settings.xml repositories/mirrors/proxies are correct
- Avoid offline mode when using extension coordinates not in the local repo
- Pin published versions compatible with the Quarkus platform
When it happens
Trigger: Calling completeCatalogWithCoords / completeCatalog with an extension argument (extensionId:group:artifact:version) whose artifact cannot be resolved by the configured Maven resolver (wrong coordinates, version not in any repository, offline mode).
Common situations: Typos in extension coordinates; specifying a version that does not exist; missing custom repository configuration; no network access / corporate proxy; extension never published for the current Quarkus version.
Related errors
- Failed to resolve artifact ${artifact}
- Failed to resolve
- Failed to resolve artifact ${artifact}
- Failed to resolve artifact: ${gav}
- Failed to initialize Maven artifact resolver
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/68c33ef7e2fe3a23.
Report an issue: GitHub.