{"record":{"id":"ce36b69dd4a54781","repo":"flowable/flowable-engine","slug":"increment-7","errorCode":null,"errorMessage":"Increment > 7 : ","messagePattern":"Increment > 7 : ","errorType":"exception","errorClass":"ParseException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/calendar/CronExpression.java","lineNumber":717,"sourceCode":"                i = checkNext(i, s, val, type);\n                return i;\n            }\n        } else {\n            throw new ParseException(\"Unexpected character: \" + c, i);\n        }\n\n        return i;\n    }\n\n    private void checkIncrementRange(int incr, int type, int idxPos) throws ParseException {\n        if (incr > 59 && (type == SECOND || type == MINUTE)) {\n            throw new ParseException(\"Increment > 60 : \" + incr, idxPos);\n        } else if (incr > 23 && (type == HOUR)) {\n            throw new ParseException(\"Increment > 24 : \" + incr, idxPos);\n        } else if (incr > 31 && (type == DAY_OF_MONTH)) {\n            throw new ParseException(\"Increment > 31 : \" + incr, idxPos);\n        } else if (incr > 7 && (type == DAY_OF_WEEK)) {\n            throw new ParseException(\"Increment > 7 : \" + incr, idxPos);\n        } else if (incr > 12 && (type == MONTH)) {\n            throw new ParseException(\"Increment > 12 : \" + incr, idxPos);\n        }\n    }\n\n    protected int checkNext(int pos, String s, int val, int type) throws ParseException {\n\n        int end = -1;\n        int i = pos;\n\n        if (i >= s.length()) {\n            addToSet(val, end, -1, type);\n            return i;\n        }\n\n        char c = s.charAt(pos);\n\n        if (c == 'L') {","sourceCodeStart":699,"sourceCodeEnd":735,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/calendar/CronExpression.java#L699-L735","documentation":"Parse-time guard in CronExpression.checkIncrementRange: the step/increment part of the day-of-week field exceeds 7, which is outside the 1-7 range of weekday values, so the cron string is rejected at the offending position.","triggerScenarios":"Expressions like \"0 0 0 ? * 1/8\" where the day-of-week step exceeds 7.","commonSituations":"Generated cron strings from UI interval pickers; confusion between day-of-month and day-of-week stepping.","solutions":["Reduce the day-of-week step to 7 or less","Use '1/7' or '?' correctly in the other field (a weekly step of 7 means every listed weekday; use day stepping for longer intervals)","Validate step inputs against 1-7 before building the expression"],"exampleFix":"// before\nnew CronExpression(\"0 0 0 ? * 1/8\");\n// after\nnew CronExpression(\"0 0 0 ? * MON\");","handlingStrategy":"validation","validationCode":"if (dowStep > 7) throw new IllegalArgumentException(\"Day-of-week step must be <= 7\");","typeGuard":null,"tryCatchPattern":"try {\n    CronExpression cron = new CronExpression(expr);\n} catch (ParseException e) {\n    if (e.getMessage().startsWith(\"Increment > 7\")) {\n        throw new ConfigurationException(\"Day-of-week step must be <= 7: \" + expr, e);\n    }\n    throw e;\n}","preventionTips":["Clamp day-of-week steps to 7","Note a step of 7 in day-of-week means every listed weekday; use day-of-month stepping for multi-day periods","Validate UI-generated expressions before persistence"],"tags":["cron","increment","quartz","scheduling"],"backgroundTag":"value-out-of-range","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}