{"record":{"id":"da35fcf6b2d2ca0e","repo":"fluent/fluentd","slug":"parameter-name-string-has-timestamp-place","errorCode":null,"errorMessage":"Parameter '#{name}: #{string}' has timestamp placeholders, but chunk key 'time' is not configured","messagePattern":"Parameter '#(.+?): #(.+?)' has timestamp placeholders, but chunk key 'time' is not configured","errorType":"exception","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/plugin/output.rb","lineNumber":736,"sourceCode":"\n        def validate!\n          case @type\n          when :time then validate_time!\n          when :tag  then validate_tag!\n          when :keys then validate_keys!\n          end\n        end\n\n        def validate_time!\n          sec = @argument[:sec]\n          title = @argument[:title]\n          example = @argument[:example]\n          timekey = @argument[:timekey]\n          if !sec && timekey\n            raise Fluent::ConfigError, \"Parameter '#{name}: #{string}' doesn't have timestamp placeholders for timekey #{timekey.to_i}\"\n          end\n          if sec && !timekey\n            raise Fluent::ConfigError, \"Parameter '#{name}: #{string}' has timestamp placeholders, but chunk key 'time' is not configured\"\n          end\n          if sec && timekey && timekey < sec\n            raise Fluent::ConfigError, \"Parameter '#{name}: #{string}' doesn't have timestamp placeholder for #{title}('#{example}') for timekey #{timekey.to_i}\"\n          end\n        end\n\n        def validate_tag!\n          parts = @argument[:parts]\n          tagkey = @argument[:tagkey]\n          if tagkey && parts.empty?\n            raise Fluent::ConfigError, \"Parameter '#{name}: #{string}' doesn't have tag placeholder\"\n          end\n          if !tagkey && !parts.empty?\n            raise Fluent::ConfigError, \"Parameter '#{name}: #{string}' has tag placeholders, but chunk key 'tag' is not configured\"\n          end\n        end\n\n        def validate_keys!","sourceCodeStart":718,"sourceCodeEnd":754,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/plugin/output.rb#L718-L754","documentation":"The parameter string contains strftime time directives (e.g. `%Y%m%d`) but the buffer does not chunk on `time` — `time` is not in the chunk keys, so `@chunk_key_time`/timekey is unset. Directives would never be expanded per-chunk (extract_placeholders only formats time when `@chunk_key_time` is set), leaving literal `%Y...` in paths, so `validate_time!` (`sec && !timekey`) rejects the mismatch.","triggerScenarios":"`path /logs/app.%Y%m%d.log` with `<buffer tag>` or `<buffer tenant>` (no `time` key); any placeholder-validated parameter mixing time directives with a non-time buffer configuration.","commonSituations":"Removing `time` from chunk keys (or the whole `<buffer>` block defaulting to tag-only) while keeping a dated path template; copy/pasting a dated path into a tag-partitioned output.","solutions":["Add `time` to the chunk keys and set a matching `timekey`: `<buffer time,tag>` + `timekey 1d`","Or strip the time directives from the parameter if time chunking is not intended","Remember `timekey` is required once `time` becomes a chunk key, or error 204 follows"],"exampleFix":"# before\n<buffer tag>\n  @type file\n</buffer>\npath /logs/${tag}/app.%Y%m%d.log\n\n# after\n<buffer time,tag>\n  @type file\n  timekey 1d\n</buffer>\npath /logs/${tag}/app.%Y%m%d.log","handlingStrategy":"validation","validationCode":"fluentd --dry-run -c /etc/fluent/fluent.conf","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Any % directive in a placeholder-validated parameter implies `time` must be a chunk key","When removing time chunking, scrub %Y/%m/%d/%H from paths too","Keep a reviewed snippet library of buffer+path pairs"],"tags":["fluentd","placeholder","timekey","path","configuration"],"backgroundTag":"template-placeholder-mismatch","analyzedSha":"dd45c6e18dc7be33b5e5a0f0767bf46307ff5626","analyzedAt":"2026-08-21T16:22:07.332Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}