{"record":{"id":"940023e9e12f6702","repo":"quarkusio/quarkus","slug":"unable-to-interpret-path-referenced-in-redisc","errorCode":null,"errorMessage":"Unable to interpret path referenced in '\" + RedisConfig.getPropertyName(name, \"redis-load-script\") + \"=\" + String.join(\",\", importFiles) + \"': \" + e.getMessage()","messagePattern":"Unable to interpret path referenced in '\" \\+ RedisConfig\\.getPropertyName\\(name, \"redis-load-script\"\\) \\+ \"=\" \\+ String\\.join\\(\",\", importFiles\\) \\+ \"': \" \\+ e\\.getMessage\\(\\)","errorType":"exception","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"extensions/redis-client/deployment/src/main/java/io/quarkus/redis/deployment/client/RedisClientProcessor.java","lineNumber":263,"sourceCode":"        } else {\n            configurator.addQualifier().annotation(REDIS_CLIENT_ANNOTATION).addValue(\"value\", name).done();\n        }\n\n        return configurator.done();\n    }\n\n    private void preloadRedisData(String name, RedisClientBuildTimeConfig clientConfig,\n            ApplicationArchivesBuildItem applicationArchivesBuildItem,\n            LaunchMode launchMode, BuildProducer<NativeImageResourceBuildItem> nativeImageResources,\n            BuildProducer<HotDeploymentWatchedFileBuildItem> hotDeploymentWatchedFiles, RedisClientRecorder recorder) {\n        List<String> importFiles = getRedisLoadScript(clientConfig, launchMode);\n        List<String> paths = new ArrayList<>();\n        for (String importFile : importFiles) {\n            Path loadScriptPath;\n            try {\n                loadScriptPath = applicationArchivesBuildItem.getRootArchive().getChildPath(importFile);\n            } catch (RuntimeException e) {\n                throw new ConfigurationException(\n                        \"Unable to interpret path referenced in '\"\n                                + RedisConfig.getPropertyName(name, \"redis-load-script\") + \"=\"\n                                + String.join(\",\", importFiles)\n                                + \"': \" + e.getMessage());\n            }\n\n            if (loadScriptPath != null && !Files.isDirectory(loadScriptPath)) {\n                // enlist resource if present\n                nativeImageResources.produce(new NativeImageResourceBuildItem(importFile));\n            } else if (clientConfig != null && clientConfig.loadScript().isPresent()) {\n                //raise exception if explicit file is not present (i.e. not the default)\n                throw new ConfigurationException(\n                        \"Unable to find file referenced in '\"\n                                + RedisConfig.getPropertyName(name, \"redis-load-script\") + \"=\"\n                                + String.join(\", \", clientConfig.loadScript().get())\n                                + \"'. Remove property or add file to your path.\");\n            }\n            // in dev mode we want to make sure that we watch for changes to file even if it doesn't currently exist","sourceCodeStart":245,"sourceCodeEnd":281,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/redis-client/deployment/src/main/java/io/quarkus/redis/deployment/client/RedisClientProcessor.java#L245-L281","documentation":"At deployment, the Redis client extension resolves each file listed in quarkus.redis.<name>.redis-load-script against the application root archive. If getChildPath throws a RuntimeException (malformed/invalid path expression), preloadRedisData wraps it in a ConfigurationException saying the path cannot be interpreted.","triggerScenarios":"Setting quarkus.redis.<name>.redis-load-script to a path the application archive cannot resolve, e.g. with invalid characters, absolute paths outside the archive, or malformed multi-value syntax.","commonSituations":"Using an absolute filesystem path or classpath: URL prefix instead of an archive-relative path; typos like 'file:/data/init.redis'; CI environments where the resource directory isn't packaged into the app archive.","solutions":["Fix the property to a valid archive-relative path, e.g. quarkus.redis.default.redis-load-script=redis/load.script, with the file under src/main/resources","Remove any absolute path or 'classpath:'/'file:' prefixes — only relative archive paths are supported","Verify the resource directory is included in the build (not filtered out by Maven resource excludes)","Run in dev mode to get faster feedback and confirm the file is visible in target/classes"],"exampleFix":"// before\nquarkus.redis.default.redis-load-script=file:/opt/data/init.redis\n// after\nquarkus.redis.default.redis-load-script=redis/init.script  # src/main/resources/redis/init.script","handlingStrategy":"validation","validationCode":"Path p = Path.of(configuredValue);\nif (p.isAbsolute() || configuredValue.startsWith(\"classpath:\") || configuredValue.startsWith(\"file:\"))\n    throw new IllegalStateException(\"redis-load-script must be an archive-relative path\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use relative paths under src/main/resources for redis-load-script","Never use absolute paths or URL prefixes","Verify the file exists in target/classes during CI"],"tags":["quarkus","redis-client","configuration","classpath","build"],"backgroundTag":"invalid-resource-path","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"}