{"record":{"id":"394fa92b3ef2af4f","repo":"Activiti/Activiti","slug":"process-definition-key-is-null-394fa9","errorCode":null,"errorMessage":"Process definition key is null","messagePattern":"Process definition key is null","errorType":"validation","errorClass":"ActivitiIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/ProcessInstanceQueryImpl.java","lineNumber":267,"sourceCode":"    public ProcessInstanceQuery processDefinitionIds(Set<String> processDefinitionIds) {\n        if (processDefinitionIds == null) {\n            throw new ActivitiIllegalArgumentException(\"Set of process definition ids is null\");\n        }\n        if (processDefinitionIds.isEmpty()) {\n            throw new ActivitiIllegalArgumentException(\"Set of process definition ids is empty\");\n        }\n\n        if (inOrStatement) {\n            this.currentOrQueryObject.processDefinitionIds = processDefinitionIds;\n        } else {\n            this.processDefinitionIds = processDefinitionIds;\n        }\n        return this;\n    }\n\n    public ProcessInstanceQueryImpl processDefinitionKey(String processDefinitionKey) {\n        if (processDefinitionKey == null) {\n            throw new ActivitiIllegalArgumentException(\"Process definition key is null\");\n        }\n\n        if (inOrStatement) {\n            this.currentOrQueryObject.processDefinitionKey = processDefinitionKey;\n        } else {\n            this.processDefinitionKey = processDefinitionKey;\n        }\n        return this;\n    }\n\n    @Override\n    public ProcessInstanceQuery processDefinitionKeys(Set<String> processDefinitionKeys) {\n        if (processDefinitionKeys == null) {\n            throw new ActivitiIllegalArgumentException(\"Set of process definition keys is null\");\n        }\n        if (processDefinitionKeys.isEmpty()) {\n            throw new ActivitiIllegalArgumentException(\"Set of process definition keys is empty\");\n        }","sourceCodeStart":249,"sourceCodeEnd":285,"githubUrl":"https://github.com/Activiti/Activiti/blob/56435b1a97deeafdc09dd40074b056c89fba5a8a/activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/ProcessInstanceQueryImpl.java#L249-L285","documentation":"ProcessInstanceQueryImpl.processDefinitionKey() throws ActivitiIllegalArgumentException when the key string is null. The key is a required, validated filter value used to match process definitions by their identifier.","triggerScenarios":"Calling .processDefinitionKey(null), usually when the key comes from an optional config entry, path variable, or lookup that returned null.","commonSituations":"REST endpoints where the key query param is absent; properties files missing the key; renaming process definitions and stale references returning null.","solutions":["Null-check the key and only add the filter when present","Validate/sanitize inputs before building the query","Omit the call when null should mean 'any process definition'"],"exampleFix":"// before\nquery.processDefinitionKey(config.getProcessKey());\n// after\nString key = config.getProcessKey();\nif (key != null) {\n    query.processDefinitionKey(key);\n}","handlingStrategy":"validation","validationCode":"if (key == null) { throw new IllegalArgumentException(\"processDefinitionKey required\"); }\nquery.processDefinitionKey(key);","typeGuard":"boolean hasKey(String k) { return k != null && !k.trim().isEmpty(); }","tryCatchPattern":"try {\n    query.processDefinitionKey(key);\n} catch (ActivitiIllegalArgumentException e) {\n    logger.warn(\"Missing process key: {}\", e.getMessage());\n}","preventionTips":["Validate config/properties that supply process keys at startup","Use Optional for optional keys and filter conditionally","Check required request parameters before building queries"],"tags":["activiti","null-argument","query-api","validation"],"backgroundTag":"null-argument","analyzedSha":"56435b1a97deeafdc09dd40074b056c89fba5a8a","analyzedAt":"2026-09-09T21:00:06.703Z","contentChangedAt":"2026-09-09T21:00:06.703Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}