{"record":{"id":"bf181bd85856fcbd","repo":"fluent/fluentd","slug":"greater-first-worker-id-first-worker-id-than-l","errorCode":null,"errorMessage":"greater first_worker_id<#{first_worker_id}> than last_worker_id<#{last_worker_id}> specified by <worker> directive is not allowed. Available multi worker assign syntax is <smaller_worker_id>-<greater_worker_id>","messagePattern":"greater first_worker_id<#(.+?)> than last_worker_id<#(.+?)> specified by <worker> directive is not allowed\\. Available multi worker assign syntax is <smaller_worker_id>-<greater_worker_id>","errorType":"validation","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/root_agent.rb","lineNumber":118,"sourceCode":"    end\n\n    def configure(conf)\n      used_worker_ids = []\n      available_worker_ids = (0..Fluent::Engine.system_config.workers - 1).to_a\n      # initialize <worker> elements\n      supported_directives = ['source', 'match', 'filter', 'label']\n      conf.elements(name: 'worker').each do |e|\n        target_worker_id_str = e.arg\n        if target_worker_id_str.empty?\n          raise Fluent::ConfigError, \"Missing worker id on <worker> directive\"\n        end\n\n        target_worker_ids = target_worker_id_str.split(\"-\")\n        if target_worker_ids.size == 2\n          first_worker_id = target_worker_ids.first.to_i\n          last_worker_id = target_worker_ids.last.to_i\n          if first_worker_id > last_worker_id\n            raise Fluent::ConfigError, \"greater first_worker_id<#{first_worker_id}> than last_worker_id<#{last_worker_id}> specified by <worker> directive is not allowed. Available multi worker assign syntax is <smaller_worker_id>-<greater_worker_id>\"\n          end\n          target_worker_ids = []\n          first_worker_id.step(last_worker_id, 1) do |worker_id|\n            target_worker_id = worker_id.to_i\n            target_worker_ids << target_worker_id\n\n            if target_worker_id < 0 || target_worker_id > (Fluent::Engine.system_config.workers - 1)\n              raise Fluent::ConfigError, \"worker id #{target_worker_id} specified by <worker> directive is not allowed. Available worker id is between 0 and #{(Fluent::Engine.system_config.workers - 1)}\"\n            end\n            available_worker_ids.delete(target_worker_id) if available_worker_ids.include?(target_worker_id)\n            if used_worker_ids.include?(target_worker_id)\n              raise Fluent::ConfigError, \"specified worker_id<#{worker_id}> collisions is detected on <worker> directive. Available worker id(s): #{available_worker_ids}\"\n            end\n            used_worker_ids << target_worker_id\n\n            e.elements.each do |elem|\n              unless supported_directives.include?(elem.name)\n                raise Fluent::ConfigError, \"<worker> section cannot have <#{elem.name}> directive\"","sourceCodeStart":100,"sourceCodeEnd":136,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/root_agent.rb#L100-L136","documentation":"Error \"greater first_worker_id<#{first_worker_id}> than last_worker_id<#{last_worker_id}> specified by <worker> directive is not allowed. Available multi worker assign syntax is <smaller_worker_id>-<greater_worker_id>\" thrown in fluent/fluentd.","triggerScenarios":"Thrown at lib/fluent/root_agent.rb:118 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"dd45c6e18dc7be33b5e5a0f0767bf46307ff5626","analyzedAt":"2026-08-21T16:22:07.332Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}