{"record":{"id":"53bc2607fbdbd0a1","repo":"fluent/fluentd","slug":"missing-worker-id-on-worker-directive","errorCode":null,"errorMessage":"Missing worker id on <worker> directive","messagePattern":"Missing worker id on <worker> directive","errorType":"validation","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/root_agent.rb","lineNumber":110,"sourceCode":"    end\n\n    attr_reader :inputs\n    attr_reader :labels\n\n    def source_only_router\n      raise \"[BUG] 'RootAgent#source_only_router' should not be called when 'with_source_only' is false\" unless @source_only_mode.enabled?\n      @source_only_buffer_agent.event_router\n    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)","sourceCodeStart":92,"sourceCodeEnd":128,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/root_agent.rb#L92-L128","documentation":"Error \"Missing worker id on <worker> directive\" thrown in fluent/fluentd.","triggerScenarios":"Thrown at lib/fluent/root_agent.rb:110 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"}