{"record":{"id":"f9a44d237e4c6655","repo":"puppetlabs/puppet","slug":"value-is-not-a-valid-day-of-the-week","errorCode":null,"errorMessage":"%{value} is not a valid day of the week","messagePattern":"%(.+?) is not a valid day of the week","errorType":"validation","errorClass":"ArgumentError","httpStatus":null,"severity":"error","filePath":"lib/puppet/type/schedule.rb","lineNumber":337,"sourceCode":"        of the range, not necessarily the day that it is when it matches.\n        For example, consider this schedule:\n\n            schedule { 'maintenance_window':\n              range   => '22:00 - 04:00',\n              weekday => 'Saturday',\n            }\n\n        This will match at 11 PM on Saturday and 2 AM on Sunday, but not\n        at 2 AM on Saturday.\n      EOT\n\n      validate do |values|\n        values = [values] unless values.is_a?(Array)\n        values.each { |value|\n          if weekday_integer?(value) || weekday_string?(value)\n            value\n          else\n            raise ArgumentError, _(\"%{value} is not a valid day of the week\") % { value: value }\n          end\n        }\n      end\n\n      def weekday_integer?(value)\n        value.is_a?(Integer) && (0..6).cover?(value)\n      end\n\n      def weekday_string?(value)\n        value.is_a?(String) && (value =~ /^[0-6]$/ || value =~ /^(Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(day)?$/i)\n      end\n\n      weekdays = {\n        'sun' => 0,\n        'mon' => 1,\n        'tue' => 2,\n        'wed' => 3,\n        'thu' => 4,","sourceCodeStart":319,"sourceCodeEnd":355,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/type/schedule.rb#L319-L355","documentation":"The schedule `weekday` parameter accepts integers 0–6 (0 = Sunday) or strings matching '0'-'6' or day-name/abbreviations (mon/monday, tues/tuesday, wed/wednesday, thurs/thursday, fri/friday, sat/saturday, sun/sunday, case-insensitive), per the validators in lib/puppet/type/schedule.rb:337. Anything else raises ArgumentError \"is not a valid day of the week\".","triggerScenarios":"`weekday => '7'`; `weekday => 'all'`; integer 7 or -1; `weekday => 'lunes'`; arrays containing any of these (each element is checked).","commonSituations":"Assuming ISO 1–7 numbering (7=Sunday); trying to say 'every day'; localized day names; off-by-one from cron habits where 0 and 7 both mean Sunday.","solutions":["Use 0–6 with 0 = Sunday, or day names/abbreviations ('Monday', 'mon')","For 'every day', omit the weekday parameter entirely","For cron-style 7 meaning Sunday, convert it to 0"],"exampleFix":"# before\nschedule { 'nightly':\n  weekday => '7',\n}\n\n# after\nschedule { 'nightly':\n  weekday => 'Sunday',\n}","handlingStrategy":"validation","validationCode":"if $weekday != undef {\n  $ok = $weekday =~ /\\A[0-6]\\z/ or $weekday =~ /\\A(Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(day)?\\z/i\n  unless $ok { fail(\"invalid weekday '${weekday}'\") }\n}","typeGuard":"def valid_weekday?(v)\n  (v.is_a?(Integer) && (0..6).cover?(v)) ||\n    (v.is_a?(String) && (v =~ /\\A[0-6]\\z/ ||\n      v =~ /\\A(Mon|Tues?|Wed(?:nes)?|Thu(?:rs)?|Fri|Sat(?:ur)?|Sun)(day)?\\z/i))\nend","tryCatchPattern":"begin\n  Puppet::Type.type(:schedule).new(name: 'n', weekday: '7')\nrescue ArgumentError => e\n  raise unless e.message.include?('day of the week')\n  # map 7 -> 0 or use a day name\nend","preventionTips":["Weekday numbering is 0–6 with Sunday=0 (no cron-style 7)","Prefer day-name strings for readability","Omit weekday for all-days matching"],"tags":["puppet","schedule","weekday","invalid-value"],"backgroundTag":"invalid-enum-value","analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}