{"record":{"id":"6d92e3ddd5b34b24","repo":"prestodb/presto","slug":"unknown-cluster-ttl-provider-manager","errorCode":null,"errorMessage":"Unknown cluster Ttl provider manager ","messagePattern":"Unknown cluster Ttl provider manager ","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"critical","filePath":"presto-main-base/src/main/java/com/facebook/presto/ttl/clusterttlprovidermanagers/ClusterTtlProviderManagerModule.java","lineNumber":35,"sourceCode":"import com.google.inject.Binder;\nimport com.google.inject.Scopes;\n\npublic class ClusterTtlProviderManagerModule\n        extends AbstractConfigurationAwareModule\n{\n    @Override\n    protected void setup(Binder binder)\n    {\n        ClusterTtlProviderManagerConfig config = buildConfigObject(ClusterTtlProviderManagerConfig.class);\n        switch (config.getClusterTtlProviderManagerType()) {\n            case THROWING:\n                binder.bind(ClusterTtlProviderManager.class).to(ThrowingClusterTtlProviderManager.class).in(Scopes.SINGLETON);\n                break;\n            case CONFIDENCE:\n                binder.bind(ClusterTtlProviderManager.class).to(ConfidenceBasedClusterTtlProviderManager.class).in(Scopes.SINGLETON);\n                break;\n            default:\n                throw new UnsupportedOperationException(\"Unknown cluster Ttl provider manager \" + config.getClusterTtlProviderManagerType());\n        }\n    }\n}\n","sourceCodeStart":17,"sourceCodeEnd":39,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/ttl/clusterttlprovidermanagers/ClusterTtlProviderManagerModule.java#L17-L39","documentation":"ClusterTtlProviderManagerModule.setup throws UnsupportedOperationException when the configured ttl-provider-manager type (config.getClusterTtlProviderManagerType()) matches none of the supported enum cases (currently only CONFIDENCE, plus a Throwing default binding path). This is a startup-time configuration validation error, not a runtime failure.","triggerScenarios":"Server/plugin boot with a cluster-ttl-provider-manager-type value in the configuration that is not a member of the ClusterTtlProviderManagerType enum, causing the switch's default branch to execute.","commonSituations":"Typo in config property (e.g. 'confidnce' or 'throwing' when unsupported); config copied from a fork/newer Presto version with extra manager types; property set programmatically to an invalid value in tests.","solutions":["Set cluster-ttl-provider-manager-type to a supported value, e.g. CONFIDENCE, in the coordinator config.","Check the ClusterTtlProviderManagerType enum in your Presto version for valid values.","Remove the stale/unknown property line if TTL provider management is not needed.","Align config with the Presto version in use (property may exist only in newer/older releases)."],"exampleFix":"// before (etc/config.properties)\ncluster-ttl-provider-manager-type=custom-manager\n\n// after\ncluster-ttl-provider-manager-type=CONFIDENCE","handlingStrategy":"validation","validationCode":"// Validate config before boot\nClusterTtlProviderManagerType type = config.getClusterTtlProviderManagerType();\nif (type == null || !EnumSet.allOf(ClusterTtlProviderManagerType.class).contains(type)) {\n    throw new IllegalArgumentException(\"Unsupported cluster-ttl-provider-manager-type: \" + type);\n}","typeGuard":"boolean isValidManagerType(String value) {\n    try {\n        ClusterTtlProviderManagerType.valueOf(value.trim().toUpperCase());\n        return true;\n    } catch (IllegalArgumentException e) {\n        return false;\n    }\n}","tryCatchPattern":"try {\n    injector = Guice.createInjector(new ClusterTtlProviderManagerModule(config));\n} catch (UnsupportedOperationException e) {\n    // log the offending config value and fail fast with a clear message\n    LOG.error(e.getMessage() + \" — set cluster-ttl-provider-manager-type to a valid enum value\");\n    throw e;\n}","preventionTips":["Copy config values only from the enum definition of your exact Presto version.","Use uppercase enum names verbatim in properties files.","Validate all ttl-* config properties in CI before deployment.","Watch for config files shared across Presto versions or forks."],"tags":["configuration","guice","ttl","presto","startup"],"backgroundTag":"unknown-config-value","analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}