Data policies for the Incident On Hold state may fire unexpectedly when trying to use the Canceled state, due to the Business Rule 'task closer' which uses TaskStateUtil to decide if it should run and what it should do. This will flip the incident state from 8 (Canceled) to 3 (On Hold) if it executes, because it determines that it is closing, and assumes the default task close state is 3. When the data policies execute after this business rule, the On Hold data policies are evaluated and applied.
The same state change occurs in an out-of-box system, but a later business rule copies the incident state back over the task state and switches it back to 8; otherwise, you would see any incident you canceled flipped to On Hold.
Steps to Reproduce
1) Import the attached XML files:
2) Go to Session Debug > Enable All
3) Navigate to an incident.list
4) Select any open state incident (preferably New)
5) Change the state to Canceled
6) Click Save from the header contextual menu
Observe the Data Policy errors for the On Hold state, and the incident record not being saved in the Canceled state.
This issue will be fixed in an upcoming release. As a workaround, import the attached dictionary override record for task.state with the attributes: close_states=7;8,default_close_state=7 .
Related Problem: PRB1253606