quarkusio/quarkus · error · RuntimeException
Cannot reset reloadable file manager
Error message
Cannot reset reloadable file manager
What it means
ReloadableFileManager.reset reinitializes the underlying reloadable StandardJavaFileManager between hot reloads (close + re-set CLASS_PATH). This error is thrown when those operations throw IOException, meaning the dev-mode compiler file manager could not be recycled for the next reload cycle.
Source
Thrown at core/deployment/src/main/java/io/quarkus/deployment/dev/filesystem/ReloadableFileManager.java:269
@Override
public boolean contains(Location location, FileObject fo) throws IOException {
return super.contains(location, fo) || (this.reloadableFileManager != null
&& this.reloadableFileManager.contains(location, fo));
}
@Override
public Iterable<? extends JavaFileObject> getJavaSources(Iterable<? extends File> files) {
return this.fileManager.getJavaFileObjectsFromFiles(files);
}
@Override
public void reset(Context context) {
try {
this.reloadableFileManager.close();
this.reloadableFileManager.setLocation(StandardLocation.CLASS_PATH, context.getReloadableClassPath());
} catch (IOException e) {
throw new RuntimeException("Cannot reset reloadable file manager", e);
}
super.reset(context);
}
@Override
public void close() throws IOException {
this.reloadableFileManager.close();
super.close();
}
/**
* A class loader that combines multiple class loaders into one.<br>
* The classes loaded by this class loader are associated with this class loader,
* i.e. Class.getClassLoader() points to this class loader.
*/
public static class JoinClassLoader extends ClassLoader {
private final ClassLoader[] delegateClassLoaders;View on GitHub (pinned to e1c734241f)
Solutions
- Restart dev mode after a ./mvnw clean to rebuild class path directories
- Stop IDE auto-build/'clean on save' while quarkus:dev is running (IntelliJ/Eclipse writing to same target dir)
- Check for file locks (antivirus, sync clients like Dropbox/OneDrive on the project dir)
- Upgrade Quarkus — several reloadable file manager reset bugs were patched
Example fix
// before: IDE auto-make triggering conflict Settings > Compiler > Build project automatically = ON (with quarkus:dev) // after: disable automatic build or use 'delegate to Maven' so only one process writes target/
Defensive patterns
Strategy: try-catch
Validate before calling
if (!Files.isDirectory(reloadableClassPath)) {
throw new IllegalStateException("Reloadable class path missing: " + reloadableClassPath + " — restart dev mode after clean");
} Try / catch
try {
context.reset(); // triggers ReloadableFileManager.reset
} catch (RuntimeException e) {
if (e.getMessage() != null && e.getMessage().contains("Cannot reset reloadable file manager")) {
// restart dev mode; investigate locks on target/classes
}
throw e;
} Prevention
- Disable IDE auto-build while continuous compilation runs
- Exclude the project directory from antivirus/sync tools
- If reload failures recur, do mvn clean and restart quarkus:dev
When it happens
Trigger: Calling reset(Context) during a Quarkus live reload when reloadableFileManager.close() or setLocation(CLASS_PATH, reloadableClassPath) throws IOException.
Common situations: Reloadable class path directory removed/locked while app is running (clean by IDE during dev mode, AV scan); stale handles on Windows; corrupted target/classes after an interrupted build.
Related errors
- Cannot initialize reloadable file manager
- Hot deployment of the application is not supported when upda
- Failed to create compiler
- Failed to open class path file <file>
- Cannot initialize file manager
AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05).
Data as JSON: /api/errors/6b8894dc288055a1.
Report an issue: GitHub.