{"record":{"id":"a3e0dcb1351ba9db","repo":"quarkusio/quarkus","slug":"failed-to-determine-the-list-of-installed-extensio","errorCode":null,"errorMessage":"Failed to determine the list of installed extensions","messagePattern":"Failed to determine the list of installed extensions","errorType":"exception","errorClass":"QuarkusCommandException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/ListExtensionsCommandHandler.java","lineNumber":115,"sourceCode":"                currentFormatter = this::originsFormatter;\n                log.info(String.format(ORIGINS_FORMAT, \"✬\", \"ArtifactId\", \"Extension Name\", \"Version\", \"Origin\"));\n                break;\n            case \"full\":\n                currentFormatter = this::fullFormatter;\n                log.info(String.format(FULL_FORMAT, \"✬\", \"ArtifactId\", \"Extension\", \"Version\", \"Guide\"));\n                break;\n            case \"support-scope\":\n                currentFormatter = this::offeringsFormatter;\n                log.info(String.format(SUPPORT_SCOPE_FORMAT, \"✬\", \"ArtifactId\", \"Extension Name\", \"Version\", \"Support scope\"));\n                break;\n        }\n\n        Map<ArtifactKey, ArtifactCoords> installedByKey;\n        try {\n            installedByKey = extensionManager.getInstalled().stream()\n                    .collect(toMap(ArtifactCoords::getKey, Function.identity()));\n        } catch (IOException e) {\n            throw new QuarkusCommandException(\"Failed to determine the list of installed extensions\", e);\n        }\n\n        Predicate<Extension> categoryFilter;\n        if (category != null && !category.isBlank()) {\n            categoryFilter = e -> ExtensionProcessor.of(e).getCategories().contains(category);\n        } else {\n            categoryFilter = e -> true;\n        }\n\n        if (currentFormatter != null) {\n            extensions.stream()\n                    .filter(e -> !ExtensionProcessor.of(e).isUnlisted())\n                    .filter(categoryFilter)\n                    .sorted(Comparator.comparing(e -> e.getArtifact().getArtifactId()))\n                    .forEach(e -> display(log, e, installedByKey.get(toKey(e)), all, installedOnly, currentFormatter));\n        } else {\n            List<Extension> filteredExtensions = extensions.stream()\n                    .filter(e -> !ExtensionProcessor.of(e).isUnlisted())","sourceCodeStart":97,"sourceCodeEnd":133,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/commands/handlers/ListExtensionsCommandHandler.java#L97-L133","documentation":"ListExtensionsCommandHandler.execute calls extensionManager.getInstalled() and reduces it to a map keyed by ArtifactKey. If reading the installed-extension state throws an IOException (typically parsing or reading the build file / installed extensions metadata), it is wrapped in a QuarkusCommandException with this message.","triggerScenarios":"Running quarkus:list (ListExtensions command) when extensionManager.getInstalled() throws IOException — e.g. unreadable or malformed pom.xml/build.gradle, or I/O failure accessing the project directory.","commonSituations":"Corrupted or partially edited pom.xml; running the command from a directory that is not a readable Quarkus project; file permission issues; symlinked/network drives with I/O errors.","solutions":["Fix the build file (mvn validate / gradle build) so it is readable and well-formed.","Run the command from the actual project root containing pom.xml or build.gradle.","Check file permissions and disk/network errors for the project directory.","Restore the build file from version control if it is corrupted."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// Verify the project/build file is readable and valid first\nPath pom = projectDir.resolve(\"pom.xml\");\nif (!Files.isReadable(pom)) throw new IllegalStateException(\"pom.xml not readable\");\nnew ProcessBuilder(\"mvn\", \"-q\", \"validate\").directory(projectDir.toFile()).inheritIO().start().waitFor();","typeGuard":null,"tryCatchPattern":"try {\n    new ListExtensionsCommandHandler().execute(invocation);\n} catch (QuarkusCommandException e) {\n    if (\"Failed to determine the list of installed extensions\".equals(e.getMessage()) && e.getCause() instanceof IOException) {\n        // inspect e.getCause() for file/parse issues, fix build file, retry\n    } else throw e;\n}","preventionTips":["Keep pom.xml/build.gradle well-formed (validate before running CLI commands)","Run commands from the project root","Ensure filesystem permissions and healthy storage"],"tags":["io","quarkus-cli","extension-management","build-file"],"backgroundTag":"installed-extensions-read-failed","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"}