{"record":{"id":"c40462e9777f3a45","repo":"quarkusio/quarkus","slug":"failed-to-write-quarkus-build-configuration-settin","errorCode":null,"errorMessage":"Failed to write Quarkus build configuration settings","messagePattern":"Failed to write Quarkus build configuration settings","errorType":"exception","errorClass":"GradleException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusShowEffectiveConfig.java","lineNumber":98,"sourceCode":"                    Runner jar (if built):         {}\n                    Native runner (if built):      {}\n                    application.(properties|yaml|yml) sources: {}\"\"\",\n                    jarType,\n                    finalName,\n                    outputDirectory(),\n                    fastJar,\n                    runnerJar(),\n                    nativeRunner(),\n                    sourceNames.stream().collect(Collectors.joining(\"\\n        \", \"\\n        \", \"\\n\")));\n\n            if (getSaveConfigProperties().get()) {\n                Properties props = new Properties();\n                props.putAll(effectiveConfig.getValues());\n                Path file = buildDir.toPath().resolve(finalName + \".quarkus-build.properties\");\n                try (BufferedWriter writer = newBufferedWriter(file)) {\n                    props.store(writer, format(\"Quarkus build properties with JAR type %s\", jarType));\n                } catch (IOException e) {\n                    throw new GradleException(\"Failed to write Quarkus build configuration settings\", e);\n                }\n                getLogger().lifecycle(\"\\nWrote configuration settings to {}\", file);\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n            throw new GradleException(\"WTF\", e);\n        }\n    }\n}\n","sourceCodeStart":80,"sourceCodeEnd":108,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusShowEffectiveConfig.java#L80-L108","documentation":"QuarkusGradle's dumpEffectiveConfiguration (QuarkusShowEffectiveConfig task) collects the effective Quarkus build config and stores it as a Java properties file named <finalName>.quarkus-build.properties in buildDir. This GradleException wraps any IOException thrown by the properties store/write operation, meaning the file could not be created or written to disk.","triggerScenarios":"Running ./gradlew quarkusShowEffectiveConfig when buildDir is not writable, the build directory was deleted mid-build, disk is full, the target path is a directory instead of a file, or file permission denies (read-only checkout, CI sandbox, Windows file lock held by another process).","commonSituations":"CI runners with read-only workspaces or full disks; the build/ directory being watched/locked by an IDE or antivirus; a user deleted build/ while the task ran; permissions changed by Docker volume mounts.","solutions":["Check that the build directory exists and is writable (ls -ld build; touch build/.probe).","Free disk space or fix filesystem permissions on the project directory.","Close programs locking the file (IDE, antivirus, previous Gradle daemon) or stop daemons with ./gradlew --stop and retry.","Recreate the build directory: rm -rf build && ./gradlew quarkusShowEffectiveConfig."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"Path file = Paths.get(project.getBuildDir().getAbsolutePath(), finalName + \".quarkus-build.properties\");\nFile dir = file.getParent().toFile();\nif (!dir.canWrite()) throw new IllegalStateException(\"build dir not writable: \" + dir);\nif (file.toFile().isDirectory()) throw new IllegalStateException(\"target path is a directory: \" + file);","typeGuard":null,"tryCatchPattern":"try {\n    ./gradlew quarkusShowEffectiveConfig\n} catch (GradleException e) {\n    if (e.getMessage().contains(\"Failed to write Quarkus build configuration settings\")) {\n        // check disk space and build/ permissions, stop Gradle daemon, retry\n    }\n}","preventionTips":["Verify build/ directory is writable before running config-dump tasks in CI","Exclude the build directory from antivirus/IDE file watchers","Monitor disk space on CI runners","Avoid running clean concurrently with config-dump tasks"],"tags":["gradle","io","filesystem","build-config"],"backgroundTag":"file-write-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"}