fluent/fluentd · error · Fluent::ConfigError

Missing '@type' parameter on <source> directive

Error message

Missing '@type' parameter on <source> directive

What it means

Error "Missing '@type' parameter on <source> directive" thrown in fluent/fluentd.

Source

Thrown at lib/fluent/root_agent.rb:197

      }
      # Call 'configure' here to avoid 'label not found'
      label_configs.each { |name, e| @labels[name].configure(e) }
      setup_error_label(error_label_config) if error_label_config

      super

      setup_source_only_buffer_agent if @source_only_mode.enabled?

      # initialize <source> elements
      if @without_source
        log.info :worker0, "'--without-source' is applied. Ignore <source> sections"
      else
        conf.elements(name: 'source').each { |e|
          if !Fluent::Engine.supervisor_mode && e.for_another_worker?
            next
          end
          type = e['@type']
          raise ConfigError, "Missing '@type' parameter on <source> directive" unless type
          add_source(type, e)
        }
      end
    end

    def setup_error_label(e)
      error_label = add_label(ERROR_LABEL)
      error_label.configure(e)
      @error_collector = error_label.event_router
    end

    def setup_source_only_buffer_agent(flush: false)
      @source_only_buffer_agent = SourceOnlyBufferAgent.new(log: log, system_config: Fluent::Engine.system_config)
      @source_only_buffer_agent.configure(flush: flush)
    end

    def cleanup_source_only_buffer_agent
      @source_only_buffer_agent&.cleanup

View on GitHub (pinned to dd45c6e18d)

When it happens

Trigger: Thrown at lib/fluent/root_agent.rb:197 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fluent/fluentd@dd45c6e18d (2026-08-21). Data as JSON: /api/errors/94883d5b4efa6ffd. Report an issue: GitHub.