Figured it out.
The issue is if you set a "Synchronize Peer IP" address in:
System: High Availability: Settings
It appears that its more work somehow for underlying FreeBSD and I guess state sync is not as easy and clean using unicast vs multicast.
Switching back to the standard multicast "224.0.0.240" address has solved the losing transactions issue.
We went from approx. 10 broken EFTPOS transactions per day to ~1 a week.
The fix
The takeaway here is don't use "Synchronize Peer IP" unless you really, really need to.
Recommendation for help text change
Change the "i" help text under "Synchronize Peer IP" to:
Setting this option will force pfsync to synchronize its state table to this IP address. The default is directed multicast. State sync via IP can be less reliable than standard multicast and is generally not recommended.
The issue is if you set a "Synchronize Peer IP" address in:
System: High Availability: Settings
It appears that its more work somehow for underlying FreeBSD and I guess state sync is not as easy and clean using unicast vs multicast.
Switching back to the standard multicast "224.0.0.240" address has solved the losing transactions issue.
We went from approx. 10 broken EFTPOS transactions per day to ~1 a week.
The fix
The takeaway here is don't use "Synchronize Peer IP" unless you really, really need to.
Recommendation for help text change
Change the "i" help text under "Synchronize Peer IP" to:
Setting this option will force pfsync to synchronize its state table to this IP address. The default is directed multicast. State sync via IP can be less reliable than standard multicast and is generally not recommended.
"