{"record":{"id":"cc294c09631d9780","repo":"quarkusio/quarkus","slug":"could-not-create-directory-outputdirectory-cc294c","errorCode":null,"errorMessage":"Could not create directory ${outputDirectory}","messagePattern":"Could not create directory (.+?)","errorType":"exception","errorClass":"MojoExecutionException","httpStatus":null,"severity":"error","filePath":"devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java","lineNumber":229,"sourceCode":"    /**\n     * Whether to refresh the local extension catalog cache before searching for the recommended Quarkus extension versions\n     */\n    @Parameter(property = \"refresh\", defaultValue = \"false\")\n    boolean refresh;\n\n    @Component\n    QuarkusWorkspaceProvider workspaceProvider;\n\n    @Override\n    public void execute() throws MojoExecutionException {\n\n        // We detect the Maven version during the project generation to indicate the user immediately that the installed\n        // version may not be supported.\n        mavenVersionEnforcer.ensureMavenVersion(getLog(), session);\n        try {\n            Files.createDirectories(outputDirectory.toPath());\n        } catch (IOException e) {\n            throw new MojoExecutionException(\"Could not create directory \" + outputDirectory, e);\n        }\n\n        final MavenArtifactResolver mvn;\n        try {\n            mvn = MavenArtifactResolver.builder()\n                    .setRepositorySystem(repoSystem)\n                    .setRepositorySystemSession(\n                            getLog().isDebugEnabled() ? repoSession : MojoUtils.muteTransferListener(repoSession))\n                    .setRemoteRepositories(repos)\n                    .setRemoteRepositoryManager(remoteRepoManager)\n                    .build();\n        } catch (Exception e) {\n            throw new MojoExecutionException(\"Failed to initialize Maven artifact resolver\", e);\n        }\n\n        final MojoMessageWriter log = new MojoMessageWriter(getLog());\n        ExtensionCatalogResolver catalogResolver = getExtensionCatalogResolver(mvn, log);\n        ExtensionCatalog catalog = resolveExtensionsCatalog(this, bomGroupId, bomArtifactId, bomVersion, stream,","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/maven/src/main/java/io/quarkus/maven/CreateProjectMojo.java#L211-L247","documentation":"In CreateProjectMojo.execute(), after the Maven version check, Files.createDirectories(outputDirectory.toPath()) is wrapped into a MojoExecutionException 'Could not create directory <path>'. It means the directory where the new Quarkus project would be generated could not be created on disk.","triggerScenarios":"Files.createDirectories(outputDirectory.toPath()) throws IOException — a file exists along the path, insufficient permissions, read-only mount, or invalid path characters.","commonSituations":"-DoutputDirectory typo (points at an existing file), generating into read-only CI workspace, permission-restricted shared folders, Windows path issues, disk full.","solutions":["Verify -DoutputDirectory points to a writable, non-existing-or-directory path and fix typos","Remove any file occupying a segment of the target path","Fix permissions/ownership of the target location or choose another directory","Check free disk space and mount status (read-only volumes)"],"exampleFix":"// before\nmvn io.quarkus:quarkus-maven-plugin:create -DoutputDirectory=./pom.xml  // path is a file\n// after\nmvn io.quarkus:quarkus-maven-plugin:create -DoutputDirectory=./my-app","handlingStrategy":"validation","validationCode":"java.nio.file.Path out = java.nio.file.Path.of(outputDirectory).toAbsolutePath();\nif (java.nio.file.Files.exists(out) && !java.nio.file.Files.isDirectory(out))\n    throw new IllegalStateException(\"outputDirectory is a file: \" + out);\nif (!java.nio.file.Files.isWritable(out.getParent() != null ? out.getParent() : out))\n    throw new IllegalStateException(\"Parent not writable: \" + out);","typeGuard":null,"tryCatchPattern":"try {\n    mvn io.quarkus:quarkus-maven-plugin:create -DoutputDirectory=...\n} catch (MojoExecutionException e) {\n    if (e.getMessage().startsWith(\"Could not create directory\")) {\n        logger.error(\"Check path/permissions for {} before retrying\", outputDirectory);\n    }\n}","preventionTips":["Point outputDirectory at a new directory, never an existing file","Confirm workspace write permissions (especially in CI containers)","Check disk space and read-only mounts before project generation"],"tags":["maven","filesystem","io","project-generation"],"backgroundTag":"directory-creation-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"}