quarkusio/quarkus · error · UncheckedIOException
IOException while reading message files (wrapped, no message
Error message
IOException while reading message files (wrapped, no message)
What it means
While scanning the application classpath for message bundle files, an IOException occurs during directory walking; it is wrapped into UncheckedIOException and propagates as a build failure. The original IOException carries the underlying cause.
Source
Thrown at extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/MessageBundleProcessor.java:1702
archive.accept(tree -> {
final Path messagesPath = tree.getPath(MESSAGES);
if (messagesPath == null) {
return;
}
try (Stream<Path> files = Files.list(messagesPath)) {
Iterator<Path> iter = files.iterator();
while (iter.hasNext()) {
Path filePath = iter.next();
if (Files.isRegularFile(filePath)) {
String messageFileName = messagesPath.relativize(filePath).toString();
if (File.separatorChar != '/') {
messageFileName = messageFileName.replace(File.separatorChar, '/');
}
messageFiles.add(new MessageFile(filePath, priority));
}
}
} catch (IOException e) {
throw new UncheckedIOException(e);
}
});
}
private static class AppClassPredicate implements Predicate<String> {
private final Function<String, String> additionalClassNameSanitizer;
public AppClassPredicate() {
this(Function.identity());
}
public AppClassPredicate(Function<String, String> additionalClassNameSanitizer) {
this.additionalClassNameSanitizer = additionalClassNameSanitizer;
}
@Override
public boolean test(String name) {View on GitHub (pinned to e1c734241f)
Solutions
- Fix filesystem permissions on the resource directories being scanned
- Inspect the wrapped IOException cause (the UncheckedIOException message includes it) and address the underlying I/O problem
- Exclude synced/remote directories from the build workspace; re-run the build
Defensive patterns
Strategy: retry
Validate before calling
// Pre-flight: ensure resource dirs readable
Files.walkFileTree(msgDir, new SimpleFileVisitor<>() {}); Try / catch
try {
build();
} catch (UncheckedIOException e) {
logger.error("IO failure reading message files", e.getCause());
// fix permissions/sync then retry
} Prevention
- Build from local filesystem, not network-synced folders
- Check directory permissions in CI containers
- Exclude volatile/synced dirs from resource scanning
When it happens
Trigger: Walking message template directories fails due to I/O errors: unreadable directories, stale file handles, filesystem errors, or files deleted/locked mid-scan (common in containers and CI).
Common situations: Docker/CI builds with permission problems on resource directories; network-mounted workspaces; antivirus or file sync (Dropbox/OneDrive) racing with the build.
Related errors
- Failed to create output directory for generated sources: %s
- IOException (wrapped)
- Unable to validate the application root for remote-dev path:
- Unable to validate remote-dev path: <file>
- Cannot create directory ${directory}
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/f987cbda15268f91.
Report an issue: GitHub.