Why Force release is not working as expected while having always_comb in design?

In reply to hvalec:

This is the correct behavior when forcing variables that are procedurally assigned. A release will not change the value until there is another procedural assignment.

Can you use a continuous assignment here instead of always_comb?

You could put a wrapper around uvm_hdl_force/release that saves the current value before applying the force, then restores the the saved value before the release.

Another option is finding a way to eliminate the forces in the first place, especially using uvm_hdl_force. They are terrible for performance slowing your entire simulation down regardless of how much the force is used.