{"record":{"id":"88f3d68673412788","repo":"fluent/fluentd","slug":"parameter-name-string-doesn-t-have-timest","errorCode":null,"errorMessage":"Parameter '#{name}: #{string}' doesn't have timestamp placeholders for timekey #{timekey.to_i}","messagePattern":"Parameter '#(.+?): #(.+?)' doesn't have timestamp placeholders for timekey #(.+?)","errorType":"validation","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/plugin/output.rb","lineNumber":733,"sourceCode":"        def keys?\n          @type == :keys\n        end\n\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","sourceCodeStart":715,"sourceCodeEnd":751,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/plugin/output.rb#L715-L751","documentation":"A path/format-style parameter contains no strftime time directives at all, while the buffer chunks records by time (`time` chunk key with a `timekey`). If all time-keyed chunks expand to the same literal value, chunks overwrite each other or become indistinguishable, so the placeholder validator (`validate_time!`, `!sec && timekey`) rejects it at configure time.","triggerScenarios":"`path /logs/app.log` (no `%Y`/`%m`/`%H`...) together with `<buffer time>` and `timekey 1h` in a file/s3 output; any parameter passed through `placeholder_validate!(name, str)` with time chunking enabled but zero time placeholders in the string.","commonSituations":"Adding `time` to chunk keys for rotation but forgetting to add time patterns to `path`; switching `path` to a fixed filename during debugging and leaving the time chunk key in place.","solutions":["Add time directives that vary at least as fast as the timekey, e.g. `path /logs/app.%Y%m%d%H.log`","Or remove `time` from the chunk keys if per-time rotation is not wanted","Match directive granularity to timekey: minute key → include %M, hour key → include %H"],"exampleFix":"# before\n<buffer time>\n  timekey 1h\n</buffer>\npath /logs/app.log\n\n# after\n<buffer time>\n  timekey 1h\n</buffer>\npath /logs/app.%Y%m%d%H.log","handlingStrategy":"validation","validationCode":"fluentd --dry-run -c /etc/fluent/fluent.conf\n# lint: if buffer chunk keys include 'time', the path must contain a % time directive","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat timekey and path time directives as one unit — change them together","Match granularity: 1m timekey needs %Y%m%d%H%M in the path","Add a config-lint step that pairs <buffer time> with strftime patterns"],"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"}