{"record":{"id":"08bca5ffa8486a88","repo":"flowable/flowable-engine","slug":"illegal-value-for-delegationstate-delegationstat","errorCode":null,"errorMessage":"Illegal value for delegationState: {delegationState}","messagePattern":"Illegal value for delegationState: (.+?)","errorType":"http","errorClass":"FlowableIllegalArgumentException","httpStatus":400,"severity":"error","filePath":"modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskBaseResource.java","lineNumber":83,"sourceCode":"\n    @Autowired\n    protected TaskService taskService;\n\n    @Autowired\n    protected HistoryService historyService;\n    \n    @Autowired(required=false)\n    protected BpmnRestApiInterceptor restApiInterceptor;\n\n    protected DelegationState getDelegationState(String delegationState) {\n        DelegationState state = null;\n        if (delegationState != null) {\n            if (DelegationState.RESOLVED.name().toLowerCase().equals(delegationState)) {\n                return DelegationState.RESOLVED;\n            } else if (DelegationState.PENDING.name().toLowerCase().equals(delegationState)) {\n                return DelegationState.PENDING;\n            } else {\n                throw new FlowableIllegalArgumentException(\"Illegal value for delegationState: \" + delegationState);\n            }\n        }\n        return state;\n    }\n\n    /**\n     * Populate the task based on the values that are present in the given {@link TaskRequest}.\n     */\n    protected void populateTaskFromRequest(Task task, TaskRequest taskRequest) {\n        if (taskRequest.isNameSet()) {\n            task.setName(taskRequest.getName());\n        }\n        if (taskRequest.isAssigneeSet()) {\n            task.setAssignee(taskRequest.getAssignee());\n        }\n        if (taskRequest.isDescriptionSet()) {\n            task.setDescription(taskRequest.getDescription());\n        }","sourceCodeStart":65,"sourceCodeEnd":101,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-rest/src/main/java/org/flowable/rest/service/api/runtime/task/TaskBaseResource.java#L65-L101","documentation":"FlowableIllegalArgumentException thrown when a task query includes a delegationState request parameter whose value is neither 'pending' nor 'resolved' (case-insensitive). Only those two DelegationState values are accepted by this converter.","triggerScenarios":"Task list query GET /runtime/tasks?delegationState=foo (or 'resolve', 'resolved ', uppercase variants are fine — only unknown words fail) where the string doesn't match PENDING or RESOLVED.","commonSituations":"Clients sending their own enum spellings ('delegated', 'resolve'); an extra null/empty variant the API doesn't support; API-version drift where a client expects more states than Flowable defines.","solutions":["Send only 'pending' or 'resolved' (case-insensitive) as delegationState","Omit the parameter entirely to get all tasks regardless of delegation state","Check the client's enum mapping against Flowable's DelegationState","Trim whitespace and remove accidental suffixes from the parameter"],"exampleFix":"// before\nGET /runtime/tasks?delegationState=delegated\n// after\nGET /runtime/tasks?delegationState=pending","handlingStrategy":"validation","validationCode":"const VALID = ['pending','resolved'];\nif (delegationState != null && !VALID.includes(delegationState.toLowerCase().trim())) throw new Error(`delegationState must be 'pending' or 'resolved', got: ${delegationState}`);","typeGuard":"function isDelegationState(v) { return v == null || ['pending','resolved'].includes(String(v).toLowerCase().trim()); }","tryCatchPattern":"try { return await api.queryTasks({ delegationState }); } catch (e) { if (e.status === 400 && /delegationState/.test(e.message)) { return api.queryTasks({}); } throw e; }","preventionTips":["Whitelist 'pending' and 'resolved' in client UIs","Omit the parameter when the state doesn't matter","Keep client enums synced with Flowable's DelegationState"],"tags":["rest","query-parameter","enum","tasks"],"backgroundTag":"invalid-enum-value","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"}