{"record":{"id":"b6cbd2a37e7ead61","repo":"flowable/flowable-engine","slug":"only-string-variable-values-are-supported-using-li-b6cbd2","errorCode":null,"errorMessage":"Only string variable values are supported using like, but was: ${type}","messagePattern":"Only string variable values are supported using like, but was: (.+?)","errorType":"validation","errorClass":"FlowableIllegalArgumentException","httpStatus":409,"severity":"error","filePath":"modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskBaseResource.java","lineNumber":431,"sourceCode":"                break;\n\n            case GREATER_THAN_OR_EQUALS:\n                taskQuery.taskVariableValueGreaterThanOrEqual(variable.getName(), actualValue);\n                break;\n\n            case LESS_THAN:\n                taskQuery.taskVariableValueLessThan(variable.getName(), actualValue);\n                break;\n\n            case LESS_THAN_OR_EQUALS:\n                taskQuery.taskVariableValueLessThanOrEqual(variable.getName(), actualValue);\n                break;\n\n            case LIKE:\n                if (actualValue instanceof String) {\n                    taskQuery.taskVariableValueLike(variable.getName(), (String) actualValue);\n                } else {\n                    throw new FlowableIllegalArgumentException(\"Only string variable values are supported using like, but was: \" + actualValue.getClass().getName());\n                }\n                break;\n\n            case LIKE_IGNORE_CASE:\n                if (actualValue instanceof String) {\n                    taskQuery.taskVariableValueLikeIgnoreCase(variable.getName(), (String) actualValue);\n                } else {\n                    throw new FlowableIllegalArgumentException(\"Only string variable values are supported using like, but was: \" + actualValue.getClass().getName());\n                }\n                break;\n\n            case EXISTS:\n                taskQuery.taskVariableExists(variable.getName());\n                break;\n\n            case NOT_EXISTS:\n                taskQuery.taskVariableNotExists(variable.getName());\n                break;","sourceCodeStart":413,"sourceCodeEnd":449,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-cmmn-rest/src/main/java/org/flowable/cmmn/rest/service/api/runtime/task/TaskBaseResource.java#L413-L449","documentation":"The like variable operation performs SQL-style pattern matching, which requires a string value. Flowable throws FlowableIllegalArgumentException when the variable value used with LIKE is not a java.lang.String. Raised in TaskBaseResource.addTaskvariables in the LIKE branch.","triggerScenarios":"POST /cmmn-query/tasks with {\"taskVariables\":[{\"name\":\"amount\",\"operation\":\"like\",\"value\":100}]} — a numeric, boolean, or object value with operation like.","commonSituations":"Using LIKE as a synonym for equals against numeric variables; forgetting to wrap the pattern in quotes; generic filter builders that don't restrict LIKE to text fields.","solutions":["Send the like pattern as a JSON string, e.g. \"value\":\"100%\".","Use equals/notEquals for exact non-string matching.","Restrict like filters to string-typed variables in the client UI."],"exampleFix":"// before\n{\"name\":\"amount\",\"operation\":\"like\",\"value\":100}\n// after\n{\"name\":\"note\",\"operation\":\"like\",\"value\":\"%urgent%\"}","handlingStrategy":"validation","validationCode":"for (const v of body.taskVariables || []) {\n  if (v.operation === 'like' && typeof v.value !== 'string') {\n    throw new Error('like requires a string pattern for variable ' + v.name);\n  }\n}","typeGuard":"const isStringValued = v => typeof v.value === 'string';","tryCatchPattern":null,"preventionTips":["Use like only for text variables with % wildcards","Use equals for exact matches on numbers/booleans","Validate value types before building the request body"],"tags":["rest-api","query","type-mismatch","flowable"],"backgroundTag":"type-mismatch","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"}