{"record":{"id":"ced1fd3aa17a10f2","repo":"flowable/flowable-engine","slug":"illegal-value-for-history-level","errorCode":null,"errorMessage":"Illegal value for history-level: ","messagePattern":"Illegal value for history-level: ","errorType":"exception","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/history/HistoryLevel.java","lineNumber":47,"sourceCode":"\n    private HistoryLevel(String key) {\n        this.key = key;\n    }\n\n    /**\n     * @param key\n     *            string representation of level\n     * @return {@link HistoryLevel} for the given key\n     * @throws FlowableException\n     *             when passed in key doesn't correspond to existing level\n     */\n    public static HistoryLevel getHistoryLevelForKey(String key) {\n        for (HistoryLevel level : values()) {\n            if (level.key.equalsIgnoreCase(key)) {\n                return level;\n            }\n        }\n        throw new FlowableIllegalArgumentException(\"Illegal value for history-level: \" + key);\n    }\n\n    /**\n     * String representation of this history-level.\n     */\n    public String getKey() {\n        return key;\n    }\n\n    /**\n     * Checks if the given level is the same as, or higher in order than the level this method is executed on.\n     */\n    public boolean isAtLeast(HistoryLevel level) {\n        // Comparing enums actually compares the location of values declared in the enum\n        return this.compareTo(level) >= 0;\n    }\n}","sourceCodeStart":29,"sourceCodeEnd":64,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/history/HistoryLevel.java#L29-L64","documentation":"Guard in HistoryLevel.getHistoryLevelForKey: the configured history level string (flowable.history-level or process engine config) does not match any known level key (none, activity, audit, full), so the engine cannot determine what to record.","triggerScenarios":"Thrown at modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/history/HistoryLevel.java:47 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set history-level to one of none, activity, audit or full","Check for typos or legacy values like 'default' in configuration files"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}