{"record":{"id":"8e9ee7f277ff9a8e","repo":"flowable/flowable-engine","slug":"deploymentcategory-is-null-8e9ee7","errorCode":null,"errorMessage":"deploymentCategory is null","messagePattern":"deploymentCategory is null","errorType":"validation","errorClass":"FlowableIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine/src/main/java/org/flowable/engine/impl/DeploymentQueryImpl.java","lineNumber":105,"sourceCode":"            throw new FlowableIllegalArgumentException(\"deploymentName is null\");\n        }\n        this.name = deploymentName;\n        return this;\n    }\n\n    @Override\n    public DeploymentQueryImpl deploymentNameLike(String nameLike) {\n        if (nameLike == null) {\n            throw new FlowableIllegalArgumentException(\"deploymentNameLike is null\");\n        }\n        this.nameLike = nameLike;\n        return this;\n    }\n\n    @Override\n    public DeploymentQueryImpl deploymentCategory(String deploymentCategory) {\n        if (deploymentCategory == null) {\n            throw new FlowableIllegalArgumentException(\"deploymentCategory is null\");\n        }\n        this.category = deploymentCategory;\n        return this;\n    }\n\n    @Override\n    public DeploymentQueryImpl deploymentCategoryLike(String categoryLike) {\n        if (categoryLike == null) {\n            throw new FlowableIllegalArgumentException(\"deploymentCategoryLike is null\");\n        }\n        this.categoryLike = categoryLike;\n        return this;\n    }\n\n    @Override\n    public DeploymentQueryImpl deploymentCategoryNotEquals(String deploymentCategoryNotEquals) {\n        if (deploymentCategoryNotEquals == null) {\n            throw new FlowableIllegalArgumentException(\"deploymentCategoryExclude is null\");","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine/src/main/java/org/flowable/engine/impl/DeploymentQueryImpl.java#L87-L123","documentation":"DeploymentQueryImpl.deploymentCategory(String) throws FlowableIllegalArgumentException when the deploymentCategory argument is null. Deployments can be categorized at deploy time; this filter matches the exact category, and null is rejected eagerly at builder time rather than producing a null-equality SQL predicate.","triggerScenarios":"repositoryService.createDeploymentQuery().deploymentCategory(null), usually when the category is read from configuration or model metadata that is missing.","commonSituations":"Deployments deployed without a category while query code assumes one exists; multi-environment setups where the category property is defined in prod but not dev.","solutions":["Pass a concrete category string that was set via DeploymentBuilder.category(...).","Guard the call: only add the category filter when it is non-null.","Fix the deployment process so the expected category is always set."],"exampleFix":"// before\nquery.deploymentCategory(category);\n// after\nif (category != null) {\n    query.deploymentCategory(category);\n}","handlingStrategy":"validation","validationCode":"if (category != null && !category.isEmpty()) {\n    query.deploymentCategory(category);\n}","typeGuard":"boolean hasCategory(String category) { return category != null && !category.isEmpty(); }","tryCatchPattern":"try {\n    query.deploymentCategory(category);\n} catch (FlowableIllegalArgumentException e) {\n    log.warn(\"Null deployment category filter ignored\", e);\n}","preventionTips":["Ensure DeploymentBuilder.category(...) is called consistently at deploy time","Keep category values in shared constants/configuration across environments","Skip category filters when the category is unknown"],"tags":["flowable","query-builder","null-argument","deployment-category"],"backgroundTag":"null-argument","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"}