fluent/fluentd · warning

this method is deprecated. Use #http_server_create_http_serv

Error message

this method is deprecated. Use #http_server_create_http_server instead

What it means

The http_server plugin helper's create_http_server is a deprecated wrapper: it warns and forwards title/addr/port/logger/default_app/proto/tls_opts and the block straight to http_server_create_http_server with identical semantics. Old plugins calling the former name keep working but should migrate.

Source

Thrown at lib/fluent/plugin_helper/http_server.rb:43

      include Fluent::PluginHelper::Thread
      include Fluent::Configurable

      # stop     : stop http server and mark callback thread as stopped
      # shutdown : [-]
      # close    : correct stopped threads
      # terminate: kill thread

      def self.included(mod)
        mod.include Fluent::PluginHelper::Server::ServerTransportParams
      end

      def initialize(*)
        super
        @_http_server = nil
      end

      def create_http_server(title, addr:, port:, logger:, default_app: nil, proto: nil, tls_opts: nil, &block)
        logger.warn('this method is deprecated. Use #http_server_create_http_server instead')
        http_server_create_http_server(title, addr: addr, port: port, logger: logger, default_app: default_app, proto: proto, tls_opts: tls_opts, &block)
      end

      # @param title [Symbol] the thread name. this value should be unique.
      # @param addr [String] Listen address
      # @param port [String] Listen port
      # @param logger [Logger] logger used in this server
      # @param default_app [Object] This method must have #call.
      # @param proto [Symbol] :tls or :tcp
      # @param tls_opts [Hash] options for TLS.
      def http_server_create_http_server(title, addr:, port:, logger:, default_app: nil, proto: nil, tls_opts: nil, &block)
        unless block_given?
          raise ArgumentError, 'BUG: callback not specified'
        end

        if proto == :tls || (@transport_config && @transport_config.protocol == :tls)
          http_server_create_https_server(title, addr: addr, port: port, logger: logger, default_app: default_app, tls_opts: tls_opts, &block)
        else

View on GitHub (pinned to dd45c6e18d)

Solutions

  1. Rename the call: create_http_server(...) → http_server_create_http_server(...) with the same arguments and block.
  2. Upgrade the third-party plugin gem if the call comes from a dependency rather than local code.
  3. Check the plugin's other helper usage for sibling deprecated wrappers in the same pass.

Example fix

# before
def start
  super
  create_http_server(:my_input, addr: '0.0.0.0', port: 9880, logger: log) do |conn|
    # ...
  end
end

# after
def start
  super
  http_server_create_http_server(:my_input, addr: '0.0.0.0', port: 9880, logger: log) do |conn|
    # ...
  end
end
Defensive patterns

Strategy: validation

Validate before calling

# CI guard: fail on deprecated create_http_server calls in plugin code
# grep -rn 'create_http_server' lib/ --include='*.rb' | grep -v http_server_create_http_server && exit 1 || exit 0

Type guard

use_new_api = respond_to?(:http_server_create_http_server)
send(use_new_api ? :http_server_create_http_server : :create_http_server, :srv, addr: '0.0.0.0', port: 9880, logger: log, &block)

Prevention

When it happens

Trigger: A plugin (typically written against early Fluentd 1.x helper APIs) includes Fluent::PluginHelper::HttpServer and calls create_http_server in its start phase.

Common situations: In-house or gem-distributed input plugins (custom HTTP/REST inputs) predating the rename; copied skeleton code from old plugin templates.

Related errors


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