{"record":{"id":"0d78e54ac7598742","repo":"apache/seatunnel","slug":"option-operation-timeout-ms-must-be-greater-than-0d78e5","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/AzureQueueSourceConfig.java","lineNumber":104,"sourceCode":"        }\n        if (batchSize < 1 || batchSize > MAX_BATCH_SIZE) {\n            throw new IllegalArgumentException(\"Option 'batch_size' must be between 1 and 32\");\n        }\n        if (visibilityTimeoutSeconds < 1\n                || visibilityTimeoutSeconds > MAX_VISIBILITY_TIMEOUT_SECONDS) {\n            throw new IllegalArgumentException(\n                    \"Option 'visibility_timeout_seconds' must be between 1 and 604800\");\n        }\n        if (pollIntervalMillis <= 0) {\n            throw new IllegalArgumentException(\n                    \"Option 'poll_interval_ms' must be greater than zero\");\n        }\n        if (maxInFlightMessages < batchSize) {\n            throw new IllegalArgumentException(\n                    \"Option 'max_in_flight_messages' must be greater than or equal to batch_size\");\n        }\n        if (operationTimeoutMillis <= 0) {\n            throw new IllegalArgumentException(\n                    \"Option 'operation_timeout_ms' must be greater than zero\");\n        }\n        long visibilityTimeoutMillis = visibilityTimeoutSeconds * 1_000L;\n        if (operationTimeoutMillis >= visibilityTimeoutMillis / 2) {\n            throw new IllegalArgumentException(\n                    \"Option 'operation_timeout_ms' must be less than half of visibility_timeout_seconds\");\n        }\n    }\n}\n","sourceCodeStart":86,"sourceCodeEnd":114,"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/AzureQueueSourceConfig.java#L86-L114","documentation":"AzureQueueSourceConfig.validate() enforces that operation_timeout_ms is strictly positive before building the source. The Azure Queue client requires a real wait duration for receive operations; zero or negative values would make polls return immediately or fail. This is a fail-fast configuration sanity check thrown as IllegalArgumentException from from().","triggerScenarios":"Creating an AzureQueueSourceConfig via from() with operation_timeout_ms set to 0 or a negative number.","commonSituations":"Users copying a template config and blanking the value, templating systems substituting an empty/default 0, or trying to make polls non-blocking by setting it to 0.","solutions":["Set operation_timeout_ms to a positive value (e.g. 60000) in the source config","Ensure the value is not being overwritten to 0 by variable substitution or template defaults","Note it must also be less than half of visibility_timeout_seconds (see related error 281)"],"exampleFix":"// before\noperation_timeout_ms = 0\n// after\noperation_timeout_ms = 60000","handlingStrategy":"validation","validationCode":"long operationTimeoutMs = Long.parseLong(config.get(\"operation_timeout_ms\"));\nif (operationTimeoutMs <= 0) throw new IllegalArgumentException(\"operation_timeout_ms must be > 0\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always set operation_timeout_ms explicitly in the source config","Add config linting that rejects non-positive durations","Remember the interplay with visibility_timeout_seconds when tuning"],"tags":["config","validation","azure"],"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-23T08:17:48.524Z"}