We use separate model and use record locking. Up until v16 it's worked as expected. We have a calc field which determines if a record is locked to editing for regular users. If status = "shipped" and a global field is set to 1 then it's locked. If we set the global field to 0, then commit, we can then edit the record (in scripts) without running as admin and then flip it back to locked when complete. What we've noticed is that under v16, the privledge set doesn't re-evaluate the calc when we set the global, commit, then try to edit another field. I can see visibly that the global field and the calc has a proper value to be unlocked, yet the script gets access denied. If we go to a different record and flip back to the record we can then edit it. We also see the issue in the UI with v16, if i change the global value then click into a new field and edit it's still locked. I can only edit it the record is exited.