{"record":{"id":"eaa0a6339325d74f","repo":"apache/seatunnel","slug":"unsupported-agent-delivery-guarantee-value-su","errorCode":null,"errorMessage":"Unsupported agent.delivery-guarantee: ${value}. Supported: BEST_EFFORT (aliases: best-effort, best_effort), NON (aliases: non, none).","messagePattern":"Unsupported agent\\.delivery-guarantee: (.+?)\\. Supported: BEST_EFFORT \\(aliases: best-effort, best_effort\\), NON \\(aliases: non, none\\)\\.","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-edge-agent/seatunnel-edge-agent-starter/src/main/java/org/apache/seatunnel/edge/agent/starter/config/EdgeDeliveryGuarantee.java","lineNumber":53,"sourceCode":"     * Returns the SPI factory identifier used to discover the matching {@link\n     * org.apache.seatunnel.edge.agent.starter.wal.WalStoreFactory}.\n     */\n    public String storeFactoryId() {\n        return storeFactoryId;\n    }\n\n    public static EdgeDeliveryGuarantee from(String value) {\n        if (value == null || value.trim().isEmpty()) {\n            return BEST_EFFORT;\n        }\n        String normalized = value.trim().replace('-', '_').toUpperCase(Locale.ROOT);\n        if (Objects.equals(BEST_EFFORT.name(), normalized)) {\n            return BEST_EFFORT;\n        }\n        if (Objects.equals(NON.name(), normalized) || Objects.equals(\"NONE\", normalized)) {\n            return NON;\n        }\n        throw new IllegalArgumentException(\n                \"Unsupported agent.delivery-guarantee: \"\n                        + value\n                        + \". Supported: BEST_EFFORT (aliases: best-effort, best_effort),\"\n                        + \" NON (aliases: non, none).\");\n    }\n\n    public static void validateSupported(String value) {\n        from(value);\n    }\n}\n","sourceCodeStart":35,"sourceCodeEnd":64,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-edge-agent/seatunnel-edge-agent-starter/src/main/java/org/apache/seatunnel/edge/agent/starter/config/EdgeDeliveryGuarantee.java#L35-L64","documentation":"EdgeDeliveryGuarantee.from normalizes the 'agent.delivery-guarantee' string to a supported enum value (BEST_EFFORT or NON, with case-insensitive aliases). If the raw value does not match any supported name or alias, it throws IllegalArgumentException listing the valid values.","triggerScenarios":"Calling EdgeDeliveryGuarantee.from(value) during AgentSectionConfig construction when agent.delivery-guarantee is any string other than BEST_EFFORT/best-effort/best_effort/NON/non/none (case-insensitive).","commonSituations":"Typo like 'at-least-once', 'exactly-once', or 'besteffort'; copied config from another system using different enum vocabulary; wrong casing assumptions.","solutions":["Change agent.delivery-guarantee to BEST_EFFORT or NON (aliases accepted: best-effort, best_effort, non, none).","Check the YAML for typos or stray whitespace/quotes in the value.","Consult EdgeDeliveryGuarantee.validateSupported to validate the value before startup."],"exampleFix":"# before\nagent:\n  delivery-guarantee: exactly-once\n# after\nagent:\n  delivery-guarantee: BEST_EFFORT","handlingStrategy":"validation","validationCode":"String dg = config.get(EdgeAgentRuntimeOptions.DELIVERY_GUARANTEE);\nSet<String> allowed = Set.of(\"BEST_EFFORT\", \"best-effort\", \"best_effort\", \"NON\", \"non\", \"none\");\nif (dg != null && !allowed.contains(dg.trim().toUpperCase())) {\n    throw new IllegalArgumentException(\"Unsupported delivery-guarantee: \" + dg);\n}","typeGuard":null,"tryCatchPattern":"try { EdgeDeliveryGuarantee.from(raw); } catch (IllegalArgumentException e) { log.error(\"delivery-guarantee rejected: {}\", e.getMessage()); }","preventionTips":["Copy enum values from the error message or docs verbatim.","Normalize casing before comparison if generating config programmatically.","Run ConfigValidator (EdgeAgentRuntimeOptionRules.agentRule) before startup."],"tags":["config","enum","validation"],"backgroundTag":"invalid-enum-value","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}