{"record":{"id":"9d9f07b57ef97eec","repo":"apache/seatunnel","slug":"option-operation-timeout-ms-must-be-greater-than","errorCode":null,"errorMessage":"Option 'operation_timeout_ms' must be greater than zero","messagePattern":"Option 'operation_timeout_ms' must be greater than zero","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"seatunnel-connectors-v2/connector-azure-queue-storage/src/main/java/org/apache/seatunnel/connectors/seatunnel/azure/queue/config/AzureQueueSinkConfig.java","lineNumber":77,"sourceCode":"                        .maxInFlight(config.get(AzureQueueStorageSinkOptions.MAX_IN_FLIGHT))\n                        .operationTimeoutMillis(\n                                config.get(AzureQueueStorageSinkOptions.OPERATION_TIMEOUT_MS))\n                        .build();\n        sinkConfig.validate();\n        return sinkConfig;\n    }\n\n    private void validate() {\n        AzureQueueConfigValidator.validateClient(this);\n\n        if (format == MessageFormat.TEXT && fieldDelimiter.isEmpty()) {\n            throw new IllegalArgumentException(\"Option 'field_delimiter' cannot be empty\");\n        }\n        if (maxInFlight <= 0) {\n            throw new IllegalArgumentException(\"Option 'max_in_flight' must be greater than zero\");\n        }\n        if (operationTimeoutMillis <= 0) {\n            throw new IllegalArgumentException(\n                    \"Option 'operation_timeout_ms' must be greater than zero\");\n        }\n    }\n}\n","sourceCodeStart":59,"sourceCodeEnd":82,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-connectors-v2/connector-azure-queue-storage/src/main/java/org/apache/seatunnel/connectors/seatunnel/azure/queue/config/AzureQueueSinkConfig.java#L59-L82","documentation":"AzureQueueSinkConfig.validate throws this when operation_timeout_ms is zero or negative. The Azure Queue client needs a positive timeout for API operations, otherwise sends would block or fail unpredictably.","triggerScenarios":"Building AzureQueueSinkConfig via from() with operation_timeout_ms <= 0, e.g. operation_timeout_ms = 0 in config.","commonSituations":"User thought 0 disables the timeout; unit confusion (expected seconds, gave 0 ms); placeholder not substituted in a templated config.","solutions":["Set operation_timeout_ms to a positive millisecond value (e.g. 60000)","Remove the option to use the plugin default","Verify the template variable supplying this value is populated"],"exampleFix":"// before\noperation_timeout_ms = 0\n// after\noperation_timeout_ms = 60000","handlingStrategy":"validation","validationCode":"java\nif (operationTimeoutMs <= 0) {\n    operationTimeoutMs = 60_000;\n}","typeGuard":null,"tryCatchPattern":"java\ntry {\n    AzureQueueSinkConfig.from(config);\n} catch (IllegalArgumentException e) {\n    if (e.getMessage().contains(\"operation_timeout_ms\")) {\n        log.error(\"operation_timeout_ms must be a positive millisecond value\");\n    } else { throw e; }\n}","preventionTips":["Keep 0-means-infinite out of timeout options; use large positive values instead","Verify templated values resolve to real numbers before submit","Unit-convert carefully (seconds vs milliseconds) when copying from other configs"],"tags":["config","validation","azure","sink","timeout"],"backgroundTag":"invalid-config-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"}