{"record":{"id":"24536927905e7545","repo":"quarkusio/quarkus","slug":"java-io-ioexception-wrapped-in-uncheckedioexceptio","errorCode":null,"errorMessage":"java.io.IOException wrapped in UncheckedIOException (no own message)","messagePattern":"java\\.io\\.IOException wrapped in UncheckedIOException \\(no own message\\)","errorType":"exception","errorClass":"UncheckedIOException","httpStatus":null,"severity":"error","filePath":"extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/BeanArchiveProcessor.java","lineNumber":255,"sourceCode":"                                || text.contains(\"bean-discovery-mode=\\\"none\\\"\")) {\n                            return false;\n                        }\n\n                        if (text.contains(\"bean-discovery-mode='all'\")\n                                || text.contains(\"bean-discovery-mode=\\\"all\\\"\")) {\n\n                            if (!knownCompatibleBeanArchives.isKnownCompatible(archive.getKey(),\n                                    KnownCompatibleBeanArchiveBuildItem.Reason.BEANS_XML_ALL)) {\n                                LOGGER.warnf(\"Detected bean archive with bean discovery mode of 'all', \"\n                                        + \"this is not portable in CDI Lite and is treated as 'annotated' in Quarkus! \"\n                                        + \"Path to beans.xml: %s\",\n                                        archive.getResolvedDependency() != null\n                                                ? archive.getResolvedDependency().toCompactCoords() + \":\" + pathVisit.getPath()\n                                                : pathVisit.getPath());\n                            }\n                        }\n                    } catch (IOException e) {\n                        throw new UncheckedIOException(e);\n                    }\n\n                    return true;\n                });\n            }\n            return result;\n        });\n    }\n\n    private boolean isApplicationArchiveExcluded(ArcConfig config, List<ExcludeDependencyBuildItem> excludeDependencyBuildItems,\n            ApplicationArchive archive) {\n        if (archive.getKey() != null) {\n            final ArtifactKey key = archive.getKey();\n            for (IndexDependencyConfig excludeDependency : config.excludeDependency().values()) {\n                if (archiveMatches(key, excludeDependency.groupId(), excludeDependency.artifactId(),\n                        excludeDependency.classifier())) {\n                    return true;\n                }","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/arc/deployment/src/main/java/io/quarkus/arc/deployment/BeanArchiveProcessor.java#L237-L273","documentation":"While probing archive paths to decide whether an archive is a bean archive (possiblyBeanArchive), an IOException from path traversal/walking is rethrown wrapped in UncheckedIOException. The wrapper has no message of its own; the cause carries the original IOException details.","triggerScenarios":"An IOException occurs while walking files/zip entries of a dependency archive during application index building — e.g. corrupt or unreadable jar, closed file handle, transient filesystem error, permission issues.","commonSituations":"Corrupted jar in the local Maven repository (~/.m2); build running in a container with a truncated dependency; file deleted between resolution and scan; network-mounted repo flakiness.","solutions":["Delete the corrupted artifact from the local repository (~/.m2/repository/<group>/<artifact>) and rebuild so Maven re-downloads it","Run mvn -U to force refresh of dependencies","Inspect the cause chain (e.getCause()) to identify the exact file and IO problem","Check filesystem permissions/disk space on the build machine"],"exampleFix":"// shell: remove and re-fetch a broken jar\nrm -rf ~/.m2/repository/com/acme/acme-lib/1.0.0\n./mvnw -U clean install","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    quarkusApp.run(args);\n} catch (UncheckedIOException e) {\n    IOException cause = e.getCause();\n    log.error(\"Archive scan failed: \" + cause.getMessage(), cause); // inspect cause for the corrupt jar\n}","preventionTips":["Keep the local Maven repo clean; re-download corrupted jars","Avoid deleting/replacing jars mid-build","Watch disk space and permissions in build containers"],"tags":["quarkus","arc","io","filesystem"],"backgroundTag":"unchecked-io-exception","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"}