Odd People Picker Behavior for Two Users

I have a custom button that Saves the form and makes a few changes to field values, including a Person.

Everything works beautifully, and has worked for several years. For some time now, when the two users in question open the form, make changes and attempt to Save with a different custom Save button, the user gets this popup error.

The user just removes their name and picks it again and everything Saves properly.

Has anyone else seen this kind of behavior?

Hi @shedev,

Could you share the button's code?

@IliaLazarevskii - sorry for the late response. Thank you for your question. It might be helpful to know a few things about the workflow. This happens for two users but we can focus on one user for simplicity.

1. Form is edited by any user
2. Custom Submit button is used with the following Click logic:

CustomButton_Submit

//Custom Submit Button
fd.spBeforeSave(function() {
    fd.field('requestreview').value = 'Requesting A Review';
    fd.field('_Status').value = 'Staff Has';
    fd.field('Stage').value = 'Staff Review';
 
});

return fd.save();

3. In the JS panel, the following code looks for a specific 'requestreview' value and manually assigns the item to a user:

fd.spRendered(function() {
    function assignStaffReviewer() {
        if (fd.field('requestreview').value == 'Requesting A Review') {
		fd.field('volunteer').value.LookupValue = 'user1@someplace.com';
        }
        else{
        fd.field('volunteer').value.LookupValue = 'user1@someplace.com';
    }
}
    // Calling assignStaffReviewer when the requestreview value changes
    fd.field('requestreview').$on('change', assignStaffReviewer);

    // Calling assignStaffReviewer on form loading
    assignStaffReviewer();

});

4. I have also tried to include this to further enforce the user assignment based on 'Stage':

fd.spRendered(function() {
    function changeStageStaffReviewLoad() {
      if (fd.field('Stage').value == 'Staff Review')  {

// Auto-assign to user1
        fd.field('volunteer').value = 'user1@someplace.com';

        fd.field('_Status').value = 'Staff Has';
        } else {

        }
    }

// Calling changeStageStaffReviewLoad when the user changes the field
    fd.field('Stage').$on('change',changeStageStaffReviewLoad);
    fd.field('volunteer').ready().then(function(field) {

// Calling changeStageStaffReviewLoad on form loading
    changeStageStaffReviewLoad();

});
});

5. When user1@someplace.com opens the item form to edit, all behavior is expected.

6. But when user1@someplace.com attempts to save any edits, using another custom button, the error is thrown:

CustomButton_AdminSave

//Custom AdminSave Button
fd.spBeforeSave(function() {
	fd.field('requestreview').value = 'AdminSave';
});

return fd.save();

If user1@someplace.com clears (x) their name from the 'volunteer' field, then manually types their name in again, any subsequent save/submit functions are successful.