{"record":{"id":"3f6fe3fc34fe4c62","repo":"apache/flink","slug":"unknown-restart-strategy-restartstrategyname","errorCode":null,"errorMessage":"Unknown restart strategy {restartStrategyName}.","messagePattern":"Unknown restart strategy (.+?)\\.","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"flink-core/src/main/java/org/apache/flink/api/common/RestartStrategyDescriptionUtils.java","lineNumber":57,"sourceCode":"    public static String getRestartStrategyDescription(Configuration configuration) {\n        final Optional<String> restartStrategyNameOptional =\n                configuration.getOptional(RestartStrategyOptions.RESTART_STRATEGY);\n\n        return restartStrategyNameOptional\n                .map(\n                        restartStrategyName -> {\n                            switch (RestartStrategyOptions.RestartStrategyType.of(\n                                    restartStrategyName.toLowerCase())) {\n                                case NO_RESTART_STRATEGY:\n                                    return \"Restart deactivated.\";\n                                case FIXED_DELAY:\n                                    return getFixedDelayDescription(configuration);\n                                case FAILURE_RATE:\n                                    return getFailureRateDescription(configuration);\n                                case EXPONENTIAL_DELAY:\n                                    return getExponentialDelayDescription(configuration);\n                                default:\n                                    throw new IllegalArgumentException(\n                                            \"Unknown restart strategy \"\n                                                    + restartStrategyName\n                                                    + \".\");\n                            }\n                        })\n                .orElse(\"Cluster level default restart strategy\");\n    }\n\n    private static String getExponentialDelayDescription(Configuration configuration) {\n        Duration initialBackoff =\n                configuration.get(\n                        RestartStrategyOptions.RESTART_STRATEGY_EXPONENTIAL_DELAY_INITIAL_BACKOFF);\n        Duration maxBackoff =\n                configuration.get(\n                        RestartStrategyOptions.RESTART_STRATEGY_EXPONENTIAL_DELAY_MAX_BACKOFF);\n        double backoffMultiplier =\n                configuration.get(\n                        RestartStrategyOptions","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/apache/flink/blob/2f3c205e9266cb30240eb7f4fdab15cad629a70f/flink-core/src/main/java/org/apache/flink/api/common/RestartStrategyDescriptionUtils.java#L39-L75","documentation":"Thrown by RestartStrategyDescriptionUtils when resolving the human-readable description for a restart-strategy name that is not one of the recognized RestartStrategyType values (no, fixed-delay, failure-rate, exponential-delay). The lambda maps known types to descriptions and throws for anything else. It indicates the configuration or caller supplied an unrecognized restart strategy name.","triggerScenarios":"Calling RestartStrategyDescriptionUtils.getRestartStrategyDescription with a name not matching any RestartStrategyType.of(...) case; setting restart-strategy.name to a typo or a removed strategy name.","commonSituations":"Config typo like 'fixed_deLay'; using a strategy name valid in an older Flink version that was removed; custom code building the description string from raw config without validation.","solutions":["Use one of the documented names: no, fixed-delay, failure-rate, exponential-delay (case-insensitive).","If relying on the cluster default, leave restart-strategy.name unset instead of passing an invalid value.","Validate the configured name against RestartStrategyType.of(...) before asking for a description, surfacing a clear config error."],"exampleFix":"// before\n// restart-strategy.name: fixeddelay  (typo)\n// after\n# in flink-conf.yaml or job config\nrestart-strategy.name: fixed-delay\nrestart-strategy.fixed-delay.attempts: 3","handlingStrategy":"validation","validationCode":"Set<String> valid = Set.of(\"no\",\"fixed-delay\",\"failure-rate\",\"exponential-delay\");\nif (!valid.contains(restartStrategyName.toLowerCase())) {\n    throw new IllegalArgumentException(\"Unknown restart strategy: \" + restartStrategyName);\n}","typeGuard":"public static boolean isKnownRestartStrategy(String name) {\n    try { RestartStrategyOptions.RestartStrategyType.of(name.toLowerCase()); return true; }\n    catch (Exception e) { return false; }\n}","tryCatchPattern":null,"preventionTips":["Use only documented restart-strategy names.","Leave restart-strategy.name unset to use the cluster default.","Validate config at load time and surface a clear error."],"tags":["restart-strategy","config","parsing","description"],"backgroundTag":null,"analyzedSha":"2f3c205e9266cb30240eb7f4fdab15cad629a70f","analyzedAt":"2026-08-14T08:48:24.518Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}