When a group is deleted and re-created with different members during incremental provisioning, stale sync membership records (for members no longer in the group) were being loaded and processed, causing a "membership error DNE count 1" error.
Root cause: In GrouperProvisioningGrouperSyncDao.retrieveIncrementalSyncMemberships(), when sync memberships are loaded by group ID, ALL sync memberships for that group were added as ProvisioningMembershipWrapper objects — including stale ones where the member is no longer provisionable and the membership is not in the target. The full sync path (retrieveFullSyncMemberships()) already had a filter at line 550-553 that skips these stale records, but the incremental path did not.
Fix: Added the same filter to the incremental sync path. Before creating a new ProvisioningMembershipWrapper, check if the sync membership is not in target AND the sync group or sync member is not provisionable (or doesn't exist). If so, skip it with continue.