fluent/fluentd · error · Fluent::ConfigError
Argument in <storage ARG> uses invalid characters: '#{usage}
Error message
Argument in <storage ARG> uses invalid characters: '#{usage}' What it means
Error "Argument in <storage ARG> uses invalid characters: '#{usage}'" thrown in fluent/fluentd.
Source
Thrown at lib/fluent/plugin_helper/storage.rb:37
require 'fluent/plugin'
require 'fluent/plugin/storage'
require 'fluent/plugin_helper/timer'
require 'fluent/config/element'
require 'fluent/configurable'
module Fluent
module PluginHelper
module Storage
include Fluent::PluginHelper::Timer
StorageState = Struct.new(:storage, :running)
def storage_create(usage: '', type: nil, conf: nil, default_type: nil)
if conf && conf.respond_to?(:arg) && !conf.arg.empty?
usage = conf.arg
end
if !usage.empty? && usage !~ /^[a-zA-Z][-_.a-zA-Z0-9]*$/
raise Fluent::ConfigError, "Argument in <storage ARG> uses invalid characters: '#{usage}'"
end
s = @_storages[usage]
if s&.running
return s.storage
elsif s
# storage is already created, but not loaded / started
else # !s
type = if type
type
elsif conf && conf.respond_to?(:[])
raise Fluent::ConfigError, "@type is required in <storage>" unless conf['@type']
conf['@type']
elsif default_type
default_type
else
raise ArgumentError, "BUG: both type and conf are not specified"
endView on GitHub (pinned to dd45c6e18d)
When it happens
Trigger: Thrown at lib/fluent/plugin_helper/storage.rb:37 when the library encounters an invalid state.
Common situations: See trigger scenarios.
Understand the failure class
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
AI-assisted analysis of fluent/fluentd@dd45c6e18d (2026-08-21).
Data as JSON: /api/errors/64b5688a693c7b09.
Report an issue: GitHub.