{"record":{"id":"d20b80ccc33c9fbd","repo":"quarkusio/quarkus","slug":"failed-to-process","errorCode":null,"errorMessage":"Failed to process ","messagePattern":"Failed to process ","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"devtools/gradle/gradle-model/src/main/java/io/quarkus/gradle/tooling/GradleApplicationModelBuilder.java","lineNumber":561,"sourceCode":"            ProjectDescriptorBuilder.initSourceDirs(project, projectModule);\n            appDep.setWorkspaceModule(projectModule);\n        }\n\n        appModel.addReloadableWorkspaceModule(appDep.getKey());\n    }\n\n    private boolean processQuarkusDependency(ResolvedDependencyBuilder artifactBuilder, ApplicationModelBuilder modelBuilder) {\n        for (Path artifactPath : artifactBuilder.getResolvedPaths()) {\n            if (!Files.exists(artifactPath) || !artifactBuilder.getType().equals(ArtifactCoords.TYPE_JAR)) {\n                break;\n            }\n            if (Files.isDirectory(artifactPath)) {\n                return processQuarkusDir(artifactBuilder, artifactPath.resolve(BootstrapConstants.META_INF), modelBuilder);\n            } else {\n                try (FileSystem artifactFs = ZipUtils.newFileSystem(artifactPath)) {\n                    return processQuarkusDir(artifactBuilder, artifactFs.getPath(BootstrapConstants.META_INF), modelBuilder);\n                } catch (IOException e) {\n                    throw new RuntimeException(\"Failed to process \" + artifactPath, e);\n                }\n            }\n        }\n        return false;\n    }\n\n    private static boolean processQuarkusDir(ResolvedDependencyBuilder artifactBuilder, Path quarkusDir,\n            ApplicationModelBuilder modelBuilder) {\n        if (!Files.exists(quarkusDir)) {\n            return false;\n        }\n        final Path quarkusDescr = quarkusDir.resolve(BootstrapConstants.DESCRIPTOR_FILE_NAME);\n        if (!Files.exists(quarkusDescr)) {\n            return false;\n        }\n        final Properties extProps = readDescriptor(quarkusDescr);\n        if (extProps == null) {\n            return false;","sourceCodeStart":543,"sourceCodeEnd":579,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/devtools/gradle/gradle-model/src/main/java/io/quarkus/gradle/tooling/GradleApplicationModelBuilder.java#L543-L579","documentation":"Thrown by GradleApplicationModelBuilder.processQuarkusDependency as a RuntimeException wrapping an IOException when the builder tries to open a resolved Quarkus artifact JAR as a ZIP filesystem (ZipUtils.newFileSystem) to read its META-INF extension descriptor and the JAR cannot be read as a zip. The path of the offending artifact is included in the message. It signals a corrupted, unreadable, or non-zip artifact file in the local repository or build output.","triggerScenarios":"collectDependencies identifies an artifact as a Quarkus extension (via descriptor markers), the artifact file is a directory branch calls processQuarkusDir directly, but the file branch fails ZipUtils.newFileSystem(artifactPath) with an IOException — corrupt/partial JAR, empty file, HTML error page saved as a JAR, or permission problems.","commonSituations":"Interrupted downloads leaving truncated JARs in ~/.m2/repository or ~/.gradle/caches; proxy/mirror returning error pages stored as JARs; antivirus locking files on Windows; disk-full conditions during dependency download.","solutions":["Delete the corrupted artifact file (path is in the message) from your local repo/cache and rebuild so it re-downloads.","Verify the file is a valid zip: `unzip -t <artifactPath>`; if invalid, remove it and any sibling *.lastUpdated markers.","Check network/proxy configuration if downloads keep producing invalid files ( Corporate mirrors returning HTML error pages).","Free disk space and retry the build if the failure happened during a download.","Run the build with -e/--stacktrace to see the underlying IOException for a precise cause."],"exampleFix":"# before: build fails with Failed to process /home/me/.m2/repository/io/quarkus/.../quarkus-foo-deployment-3.0.0.jar\nrm -rf ~/.m2/repository/io/quarkus/ext/quarkus-foo-deployment/3.0.0/\n# after: rebuild re-downloads a valid jar","handlingStrategy":"try-catch","validationCode":"// Validate artifact integrity before building:\ndef f = file(artifactPath)\nassert f.exists() && f.length() > 0 : \"Artifact ${f} is missing or empty\"\ndef proc = ['unzip', '-t', f.absolutePath].execute()\nassert proc.waitFor() == 0 : \"Artifact ${f} is not a valid zip\"\n","typeGuard":null,"tryCatchPattern":"try {\n    quarkusBuild()\n} catch (RuntimeException e) {\n    if (e.message?.startsWith('Failed to process')) {\n        def badJar = e.message.minus('Failed to process ')\n        logger.error(\"Corrupt artifact ${badJar}; delete it and re-download\")\n    } else throw e\n}","preventionTips":["Use stable network/mirror configuration so downloads never yield truncated or HTML files","Run `unzip -t` on cached jars in CI when builds fail with IO errors","Ensure sufficient disk space in CI agents before dependency resolution","Exclude local repo directories from antivirus real-time scanning on dev machines"],"tags":["quarkus","gradle","jar","io","corrupt-artifact"],"backgroundTag":"corrupt-jar-artifact","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}