{"record":{"id":"958e27c533470e0b","repo":"kestra-io/kestra","slug":"the-islastworkingday-function-received-an-inva","errorCode":null,"errorMessage":"The 'isLastWorkingDay()' function received an invalid 'workingDays' value: '{trimmed}'. Expected day names like MONDAY, TUESDAY, etc.","messagePattern":"The 'isLastWorkingDay\\(\\)' function received an invalid 'workingDays' value: '(.+?)'\\. Expected day names like MONDAY, TUESDAY, etc\\.","errorType":"validation","errorClass":"PebbleException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/io/kestra/core/runners/pebble/functions/IsLastWorkingDayFunction.java","lineNumber":90,"sourceCode":"        return localDate.isEqual(candidate);\n    }\n\n    private Set<DayOfWeek> resolveWorkingDays(Object workingDaysArg, PebbleTemplate self, int lineNumber) {\n        if (workingDaysArg == null || workingDaysArg.toString().isBlank()) {\n            return DEFAULT_WORKING_DAYS;\n        }\n\n        String[] parts = workingDaysArg.toString().split(\"[,\\\\s]+\");\n        Set<DayOfWeek> result = EnumSet.noneOf(DayOfWeek.class);\n        for (String part : parts) {\n            String trimmed = part.trim();\n            if (trimmed.isEmpty()) {\n                continue;\n            }\n            try {\n                result.add(DayOfWeek.valueOf(trimmed.toUpperCase()));\n            } catch (IllegalArgumentException e) {\n                throw new PebbleException(\n                    e,\n                    \"The 'isLastWorkingDay()' function received an invalid 'workingDays' value: '\" + trimmed + \"'. Expected day names like MONDAY, TUESDAY, etc.\",\n                    lineNumber, self.getName()\n                );\n            }\n        }\n\n        if (result.isEmpty()) {\n            throw new PebbleException(null, \"The 'isLastWorkingDay()' function requires at least one valid day in 'workingDays'.\", lineNumber, self.getName());\n        }\n\n        return result;\n    }\n\n    @Override\n    public List<String> getArgumentNames() {\n        return List.of(\"date\", \"workingDays\");\n    }","sourceCodeStart":72,"sourceCodeEnd":108,"githubUrl":"https://github.com/kestra-io/kestra/blob/823fada9274c4f9c251ea0a516460a4f7d958032/core/src/main/java/io/kestra/core/runners/pebble/functions/IsLastWorkingDayFunction.java#L72-L108","documentation":"The workingDays argument is parsed as a comma- or space-separated list of day names; each token must be a valid DayOfWeek enum constant (case-insensitive). One token failed DayOfWeek.valueOf.","triggerScenarios":"Passing workingDays='MON,TUE' (3-letter abbreviations), 'Monday' (lowercase is fine but 'Mondayy' is not), or a typo.","commonSituations":"Using 3-letter abbreviations or localized day names instead of the full uppercase enum name.","solutions":["Use full uppercase day names, comma- or space-separated: 'MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY'.","Omit workingDays to use the default Mon–Fri."],"exampleFix":"// before\n{{ isLastWorkingDay(date='2024-01-31', workingDays='MON,TUE') }}\n// after\n{{ isLastWorkingDay(date='2024-01-31', workingDays='MONDAY,TUESDAY') }}","handlingStrategy":"validation","validationCode":"{% set days = (workingDays ?? '')|upper %}{% if days is empty %}{{ isLastWorkingDay(date=myDate) }}{% elseif days in ['MONDAY','TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'] %}{{ isLastWorkingDay(date=myDate, workingDays=days) }}{% else %}invalid-day{% endif %}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use full uppercase day names, comma- or space-separated.","Omit workingDays to use the default Mon–Fri set.","Never use 3-letter abbreviations like 'MON'."],"tags":["pebble","date","enum","validation"],"backgroundTag":null,"analyzedSha":"823fada9274c4f9c251ea0a516460a4f7d958032","analyzedAt":"2026-08-14T06:15:17.947Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}