{"record":{"id":"4c326df19320ab63","repo":"fluent/fluentd","slug":"unsupported-timezone-timezone","errorCode":null,"errorMessage":"Unsupported timezone '#{timezone}'","messagePattern":"Unsupported timezone '#(.+?)'","errorType":"exception","errorClass":"Fluent::ConfigError","httpStatus":null,"severity":"error","filePath":"lib/fluent/timezone.rb","lineNumber":92,"sourceCode":"          return false\n        else\n          # Valid. The string was found in the timezone database.\n          return true\n        end\n      else\n        # Invalid. Timezone abbreviations are not supported.\n        return false\n      end\n    end\n\n    # Validate the format of the specified timezone.\n    #\n    # The implementation of this method calls validate(timezone) method\n    # to check whether the given timezone is valid. When invalid, this\n    # method raises a ConfigError.\n    def self.validate!(timezone)\n      unless validate(timezone)\n        raise ConfigError, \"Unsupported timezone '#{timezone}'\"\n      end\n    end\n\n    using IntegerExt\n\n    # Create a formatter for a timezone and optionally a format.\n    #\n    # An Proc object is returned. If the given timezone is invalid,\n    # nil is returned.\n    def self.formatter(timezone = nil, format = nil)\n      if timezone.nil?\n        return nil\n      end\n\n      # [+-]HH:MM, [+-]HHMM, [+-]HH\n      if NUMERIC_PATTERN === timezone\n        offset = Time.zone_offset(timezone)\n","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/fluent/fluentd/blob/dd45c6e18dc7be33b5e5a0f0767bf46307ff5626/lib/fluent/timezone.rb#L74-L110","documentation":"Fluent::ConfigError raised by Fluent::Timezone.validate! (lib/fluent/timezone.rb:92) when the timezone string does not pass format validation. Fluentd accepts only fixed-offset forms like +09:00, -0600, +0000 (and UTC) — named zones like 'Asia/Tokyo' and abbreviations like 'JST' or 'PST' are not supported because it formats offsets without a tz database.","triggerScenarios":"Setting timezone Asia/Tokyo or timezone JST in a parser/formatter or <system>; validate! runs during configuration (called from TimeParameters#configure at time.rb:184 and elsewhere), so fluentd fails at startup/dry-run. Passing a malformed offset like '+9' or '09:00' without sign also fails.","commonSituations":"Porting configs from libraries that accept IANA zone names; writing timezone UTC+9 instead of +0900; assuming DST-aware zones work (they cannot — fixed offsets only); typos in the offset string.","solutions":["Replace the zone name/abbreviation with its fixed numeric offset, e.g. timezone Asia/Tokyo -> timezone +0900","Use exactly the supported shapes: +HH:MM, -HH:MM, +HHMM, or UTC","If records cross DST and need true zone awareness, convert times upstream or in a filter with tzinfo instead of the timezone option"],"exampleFix":"# before\n<parse>\n  @type nginx\n  time_format %d/%b/%Y:%H:%M:%S %z\n  timezone Asia/Tokyo\n</parse>\n\n# after\n<parse>\n  @type nginx\n  time_format %d/%b/%Y:%H:%M:%S %z\n  timezone +09:00\n</parse>","handlingStrategy":"validation","validationCode":"require 'fluent/timezone'\n\nFluent::Timezone.validate!('+09:00')   # raises Fluent::ConfigError early if unsupported\n# rule of thumb: only +HH:MM / -HH:MM / +HHMM / UTC pass; never zone names","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use numeric fixed offsets only — IANA names and abbreviations are unsupported by design","Centralize timezone strings in config templates so typos fail one dry-run, not in production"],"tags":["fluentd","timezone","configuration","validation","startup"],"backgroundTag":"invalid-timezone-format","analyzedSha":"dd45c6e18dc7be33b5e5a0f0767bf46307ff5626","analyzedAt":"2026-08-21T16:22:07.332Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}