{"record":{"id":"928a9aaaf0d6af35","repo":"quarkusio/quarkus","slug":"unable-to-find-the-tls-configuration-config-tl","errorCode":null,"errorMessage":"Unable to find the TLS configuration \" + config.tlsConfigurationName().get() + \" for the Redis client \" + name + \".","messagePattern":"Unable to find the TLS configuration \" \\+ config\\.tlsConfigurationName\\(\\)\\.get\\(\\) \\+ \" for the Redis client \" \\+ name \\+ \"\\.","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/VertxRedisClientFactory.java","lineNumber":267,"sourceCode":"\n    private static void configureTLS(String name, RedisClientConfig config, TlsConfigurationRegistry tlsRegistry,\n            NetClientOptions net, List<URI> hosts) {\n        TlsConfiguration configuration = null;\n        boolean defaultTrustAll = false;\n\n        boolean tlsFromHosts = false;\n        for (URI uri : hosts) {\n            if (\"rediss\".equals(uri.getScheme())) {\n                tlsFromHosts = true;\n                break;\n            }\n        }\n\n        // Check if we have a named TLS configuration or a default configuration:\n        if (config.tlsConfigurationName().isPresent()) {\n            Optional<TlsConfiguration> maybeConfiguration = tlsRegistry.get(config.tlsConfigurationName().get());\n            if (maybeConfiguration.isEmpty()) {\n                throw new IllegalStateException(\"Unable to find the TLS configuration \"\n                        + config.tlsConfigurationName().get() + \" for the Redis client \" + name + \".\");\n            }\n            configuration = maybeConfiguration.get();\n        } else if (tlsRegistry.getDefault().isPresent() && (tlsRegistry.getDefault().get().isTrustAll())) {\n            defaultTrustAll = tlsRegistry.getDefault().get().isTrustAll();\n            if (defaultTrustAll) {\n                LOGGER.warn(\"The default TLS configuration is set to trust all certificates. This is a security risk.\"\n                        + \"Please use a named TLS configuration for the Redis client \" + name + \" to avoid this warning.\");\n            }\n        }\n\n        if (configuration != null && !tlsFromHosts) {\n            LOGGER.warnf(\"The Redis client %s is configured with a named TLS configuration but the hosts are not \" +\n                    \"using the `rediss://` scheme - Disabling TLS\", name);\n        }\n\n        // Apply the configuration\n        if (configuration != null) {","sourceCodeStart":249,"sourceCodeEnd":285,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/redis-client/runtime/src/main/java/io/quarkus/redis/runtime/client/VertxRedisClientFactory.java#L249-L285","documentation":"configureTLS() resolves the named TLS registry entry referenced by quarkus.redis.tls-configuration-name. If the TLS registry (TlsConfigurationRegistry) has no configuration registered under that name, an IllegalStateException is thrown at client creation. Quarkus fails fast because connecting with an undefined truststore/keystore configuration would be insecure or broken.","triggerScenarios":"At startup in configureTLS (called from create) when config.tlsConfigurationName() is present but tlsRegistry.get(name) returns empty.","commonSituations":"quarkus.redis.tls-configuration-name referencing a name not defined via quarkus.tls.* properties; typo in the TLS config name; TLS registry build step not registering the named config (missing quarkus.tls.<name>.trust-store etc.).","solutions":["Define the named TLS configuration, e.g. quarkus.tls.<name>.trust-store=... so it is registered in the TLS registry.","Fix the quarkus.redis.tls-configuration-name value to exactly match an existing TLS configuration name.","Remove quarkus.redis.tls-configuration-name if you want default TLS handling instead."],"exampleFix":"// before (application.properties)\nquarkus.redis.tls-configuration-name=redis-tls\n\n// after\nquarkus.redis.tls-configuration-name=redis-tls\nquarkus.tls.redis-tls.trust-store=classpath:redis-truststore.p12\nquarkus.tls.redis-tls.trust-store-password=secret","handlingStrategy":"validation","validationCode":"Optional<String> tlsName = config.getOptionalValue(\"quarkus.redis.tls-configuration-name\", String.class);\nif (tlsName.isPresent() && !TlsConfigSourceFactory.hasNamedConfig(tlsName.get())) {\n    throw new IllegalStateException(\"Define quarkus.tls.\" + tlsName.get() + \".* properties\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Define quarkus.tls.<name>.* properties whenever quarkus.redis.tls-configuration-name is set.","Reference TLS names from constants shared between redis and tls config.","Verify TLS registration with a Dev Services / integration test using TLS."],"tags":["redis","quarkus","tls","configuration"],"backgroundTag":"tls-configuration-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"}