This is due to the applyupdater not being able to compare two positions correctly. If you skip the equality check for just position updates or compare the lat and lng values, you will have a quick workaround i.e
if (updaterName == 'position' && (opt.lat() != prevOpt.lat() || opt.lng() != prevOpt.lng())){
updater(opt, tag);
} else if(!equals(opt, prevOpt)) {
updater(opt, tag);
}
This is due to the applyupdater not being able to compare two positions correctly. If you skip the equality check for just position updates or compare the lat and lng values, you will have a quick workaround i.e