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)
elseView on GitHub (pinned to dd45c6e18d)
Solutions
- Rename the call: create_http_server(...) → http_server_create_http_server(...) with the same arguments and block.
- Upgrade the third-party plugin gem if the call comes from a dependency rather than local code.
- 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
- Use http_server_create_http_server in all new plugin code; the old name is a pure alias.
- When vendoring old plugin skeletons, rename helper calls as part of the import.
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
- unknown_key
- <counter_client> is required in <system>
- @type is required in <format>
- @type is required in <parse>
- BUG: invalid protocol name
AI-assisted analysis of fluent/fluentd@dd45c6e18d (2026-08-21).
Data as JSON: /api/errors/61fa7ac0c30b19c1.
Report an issue: GitHub.