{"record":{"id":"6e077ccbbf42b813","repo":"quarkusio/quarkus","slug":"quarkus-extension-registry-configuration-file-co","errorCode":null,"errorMessage":"Quarkus extension registry configuration file ${configYaml} specified by the system property ${CONFIG_FILE_PATH_PROPERTY} does not exist","messagePattern":"Quarkus extension registry configuration file (.+?) specified by the system property (.+?) does not exist","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/config/RegistriesConfigLocator.java","lineNumber":142,"sourceCode":"     * @return the registry client configuration file or null, if the file could not be found\n     */\n    public static Path locateConfigYaml() {\n        return locateConfigYaml(null);\n    }\n\n    /**\n     * Returns the registry client configuration file or null if the file could not be found.\n     *\n     * @param configYaml Path to a pre-specified config file (e.g. a command line argument)\n     * @return the registry client configuration file or null if the file could not be found.\n     */\n    public static Path locateConfigYaml(Path configYaml) {\n        if (configYaml == null) {\n            final String prop = System.getProperty(CONFIG_FILE_PATH_PROPERTY);\n            if (prop != null) {\n                configYaml = Paths.get(prop);\n                if (!Files.exists(configYaml)) {\n                    throw new IllegalStateException(\"Quarkus extension registry configuration file \" + configYaml\n                            + \" specified by the system property \" + CONFIG_FILE_PATH_PROPERTY + \" does not exist\");\n                }\n                return configYaml;\n            }\n\n            configYaml = Paths.get(\"\").normalize().toAbsolutePath().resolve(CONFIG_RELATIVE_PATH);\n            if (Files.exists(configYaml)) {\n                return configYaml;\n            }\n\n            configYaml = getDefaultConfigYamlLocation();\n        }\n\n        return Files.exists(configYaml) ? configYaml : null;\n    }\n\n    /**\n     * Returns the default location of the registry client configuration file.","sourceCodeStart":124,"sourceCodeEnd":160,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/config/RegistriesConfigLocator.java#L124-L160","documentation":"locateConfigYaml() honors the system property quarkus.registries (CONFIG_FILE_PATH_PROPERTY) pointing at a custom registry config file; if the property is set but the referenced file does not exist on disk, it throws immediately instead of falling back to the default location. This fails fast so users know their explicit override is broken.","triggerScenarios":"Running with -Dquarkus.registries=/path/to/config.yaml (or equivalent) where that path does not exist; a relative path resolved against the wrong working directory; the file was deleted/moved after being referenced.","commonSituations":"CI pipelines passing a config path from an env var that is unset or misspelled on the agent; Docker images where the config file was not copied to the expected path; switching working directories so a relative path no longer resolves.","solutions":["Check the resolved path printed in the message and create/copy the config YAML there (mkdir -p the parent dir if needed)","Fix the -Dquarkus.registries system property (or QUARKUS_LAUNCHER... whatever sets it) to the correct absolute path","Remove the system property if you intended to use the default ~/.quarkus/config.yaml location"],"exampleFix":"// before\n-Dquarkus.registries=/etc/quarkus/registry-config.yml\n// after (file actually exists)\n-Dquarkus.registries=/etc/quarkus/registries.yaml","handlingStrategy":"validation","validationCode":"String prop = System.getProperty(\"quarkus.registries\");\nif (prop != null && !Files.isRegularFile(Path.of(prop))) {\n    throw new IllegalStateException(\"Registry config override does not exist: \" + prop);\n}","typeGuard":null,"tryCatchPattern":"try {\n    Path cfg = RegistriesConfigLocator.locateConfigYaml(override);\n} catch (IllegalStateException e) {\n    logger.error(\"Registry config missing: {}\", e.getMessage());\n}","preventionTips":["Use absolute paths in the quarkus.registries system property","In CI, assert the config file exists before launching Maven/Gradle Quarkus goals","In containers, verify the file is copied into the image at the referenced path"],"tags":["config","filesystem","system-property","registry"],"backgroundTag":"config-file-not-found","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"}