@BEXJens This is a limitation of the caching system in Acumatica. It does not distinguish between trivial and consequential changes to a screen. If you click into an empty field, that can be enough to trigger the change management so that it thinks that you have made a consequential change. If you have at the same time made an actual change via a webhook/API, the front end is now out of synch with the backend and there is now a conflict that would require you to reload the page and lose your frontend change.
I proposed previously that Acumatica use SignalR to push API and webhook updates to the front end, so that they can be harmonized with user frontend changes, but this is non-trivial and as far as I know there hasn’t been any effort to do this.
The problem with the heavy use of caching in Acumatica is that it is not easy to pull apart dependencies once data is cached. So when a change is made to some piece of data, you effectively have to reload the whole screen to make sure all downstream dependent fields are updated. This forces you to wipe out any front end changes that the user may be working on at the moment, because they may be inconsistent with the new updated fields in the backend.
However, in many cases, such as a user clicking into an empty field and having that modify the calculated state of the screen, even if nothing has changed, Acumatica could improve greatly just by fixing this kind of thing, which is almost a pseudo-bug. If the user is looking at a screen that the user has not actually changed, then it would be rather trivial to push an update with SignalR to the user’s screen while they are looking at it and notify them of the update. This is where I would start to begin trying to fix this issue, and in the case there is a conflict between the user’s front end changes and new backend changes via API, figure out some way to warn the user of the conflict and let them try to resolve it or reload the screen to start again.