{"record":{"id":"64b5688a693c7b09","repo":"fluent/fluentd","slug":"argument-in-storage-arg-uses-invalid-characters","errorCode":null,"errorMessage":"Argument in <storage ARG> uses invalid characters: '#{usage}'","messagePattern":"Argument in <storage ARG> uses invalid characters: '#(.+?)'","errorType":"validation","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/plugin_helper/storage.rb","lineNumber":37,"sourceCode":"require 'fluent/plugin'\nrequire 'fluent/plugin/storage'\nrequire 'fluent/plugin_helper/timer'\nrequire 'fluent/config/element'\nrequire 'fluent/configurable'\n\nmodule Fluent\n  module PluginHelper\n    module Storage\n      include Fluent::PluginHelper::Timer\n\n      StorageState = Struct.new(:storage, :running)\n\n      def storage_create(usage: '', type: nil, conf: nil, default_type: nil)\n        if conf && conf.respond_to?(:arg) && !conf.arg.empty?\n          usage = conf.arg\n        end\n        if !usage.empty? && usage !~ /^[a-zA-Z][-_.a-zA-Z0-9]*$/\n          raise Fluent::ConfigError, \"Argument in <storage ARG> uses invalid characters: '#{usage}'\"\n        end\n\n        s = @_storages[usage]\n        if s&.running\n          return s.storage\n        elsif s\n          # storage is already created, but not loaded / started\n        else # !s\n          type = if type\n                   type\n                 elsif conf && conf.respond_to?(:[])\n                   raise Fluent::ConfigError, \"@type is required in <storage>\" unless conf['@type']\n                   conf['@type']\n                 elsif default_type\n                   default_type\n                 else\n                   raise ArgumentError, \"BUG: both type and conf are not specified\"\n                 end","sourceCodeStart":19,"sourceCodeEnd":55,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/plugin_helper/storage.rb#L19-L55","documentation":"Error \"Argument in <storage ARG> uses invalid characters: '#{usage}'\" thrown in fluent/fluentd.","triggerScenarios":"Thrown at lib/fluent/plugin_helper/storage.rb:37 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"}