quarkusio/quarkus · error · AppModelResolverException
Failed to read properties from ${propsPath}
Error message
Failed to read properties from ${propsPath} What it means
addPlatformProperties() imports platform metadata from a properties file at propsPath. If the file cannot be opened or read (missing, unreadable, I/O error), it wraps the IOException in AppModelResolverException with this message. The platform import cannot proceed without this file's contents.
Source
Thrown at independent-projects/bootstrap/app-model/src/main/java/io/quarkus/bootstrap/model/PlatformImportsImpl.java:112
platformImports.computeIfAbsent(bomCoords, this::newPlatformImport).descriptorFound = true;
}
public void addPlatformProperties(String groupId, String artifactId, String classifier, String type, String version,
Path propsPath) throws AppModelResolverException {
final ArtifactCoords bomCoords = ArtifactCoords.pom(groupId,
artifactId.substring(0,
artifactId.length() - BootstrapConstants.PLATFORM_PROPERTIES_ARTIFACT_ID_SUFFIX.length()),
version);
platformImports.computeIfAbsent(bomCoords, this::newPlatformImport);
importedPlatformBoms.computeIfAbsent(groupId, g -> new ArrayList<>());
if (!importedPlatformBoms.get(groupId).contains(bomCoords)) {
importedPlatformBoms.get(groupId).add(bomCoords);
final Properties props = new Properties();
try (InputStream is = Files.newInputStream(propsPath)) {
props.load(is);
} catch (IOException e) {
throw new AppModelResolverException("Failed to read properties from " + propsPath, e);
}
for (Map.Entry<?, ?> prop : props.entrySet()) {
final String name = String.valueOf(prop.getKey());
if (name.startsWith(BootstrapConstants.PLATFORM_PROPERTY_PREFIX)) {
if (isPlatformReleaseInfo(name)) {
addPlatformRelease(name, String.valueOf(prop.getValue()));
} else {
collectedProps.putIfAbsent(name, String.valueOf(prop.getValue().toString()));
}
}
}
}
}
/**
* This method is meant to be called when a new platform BOM import was detected.
*
* @param bom platform BOM coordinatesView on GitHub (pinned to e1c734241f)
Solutions
- Verify propsPath exists and is readable before importing (Files.isReadable)
- Rebuild/refresh the project so the platform properties file is regenerated
- Check the path passed to resolvePlatformImports points at the correct build output directory
Example fix
// before
imports.addPlatformProperties(Path.of("target/missing-platform.properties"), bomCoords);
// after
Path propsPath = Path.of("target/quarkus-platform.properties");
if (!Files.isReadable(propsPath)) {
throw new IllegalStateException("Platform properties missing: " + propsPath);
}
imports.addPlatformProperties(propsPath, bomCoords); Defensive patterns
Strategy: validation
Validate before calling
if (propsPath == null || !Files.isRegularFile(propsPath) || !Files.isReadable(propsPath)) {
throw new IllegalStateException("Platform properties file missing or unreadable: " + propsPath);
} Try / catch
try {
imports.addPlatformProperties(propsPath, bomCoords);
} catch (AppModelResolverException e) {
log.errorf(e, "Cannot read platform properties at %s", propsPath);
throw e;
} Prevention
- Verify the file exists before resolving platform imports
- Regenerate build output after mvn clean instead of reusing stale paths
- Handle AppModelResolverException.getCause() (IOException) for clearer diagnostics
When it happens
Trigger: Calling addPlatformProperties / resolvePlatformImports / setUpPlatformConfiguration with a propsPath that does not exist or is not readable; the file was deleted or locked mid-read.
Common situations: Stale quarkus-platform properties path after a clean of the build directory; read-only CI workspace; path pointing to the wrong module's target directory; file removed by a concurrent build.
Understand the failure class
Background: "failed to read file", EACCES, ENOENT and "could not read <path>" errors: when a program can't read a file from disk — this error's family across 49 libraries.
Related errors
- Invalid key store configuration for certificate '${name}' -
- Invalid trust store configuration for certificate '${name}'
- Invalid key/certificate pair configuration for certificate '
- Failed to read ${pom}
- Failed to open path tree with root %s
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/dc1cb38966ce2e9b.
Report an issue: GitHub.