Unexpected behaviour in decision table

Hi! We’ve expected that, given the decision table below, when “downDataParams.rxPwr” attribute (it’s also an object) is null, flowable throws some exception at least, however, what really happens is that no error raised and “cmDsRsStatus” is not set, so it seem like the flow never eval any condition in the table. Why is this happening? Is this the right behavior?

I would have expected a Unique hit policy to throw an error if no rule hit, but it seems the spec is ambiguous on what happens in this case. But some tests confirm the behavior you are seeing even without complex objects:

    @Test
    @Deployment(resources = {"com/example/flowabletests/decision/Unique_Decision_Process.bpmn20.xml"})
    @DmnDeploymentAnnotation(resources = {"com/example/flowabletests/decision/Simple Unique Dmn.dmn"})
    public void simpleUniqueTestBadInput(){
        final ProcessInstance processInstance = runtimeService.createProcessInstanceBuilder()
                .processDefinitionKey("uniqueDecisionProcess")
                .variable("input", "FLOOP")
                .start();
        final HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
                .processInstanceId(processInstance.getProcessInstanceId())
                .includeProcessVariables()
                .singleResult();
        final Map<String, Object> processVariables = historicProcessInstance.getProcessVariables();
        final Object output = processVariables.get("output");
        assertEquals(null, output);
    }

In truth, I haven’t read the whole 215 page spec, so this may be by spec.