Unexpected interaction between a Plugin and the Dynamics CRM Social Pane

One of my customers has customized the Appointment and added Appointment Type and a Competitor fields to allow them to perform analytics on the interactions with their customers.

One of the a business requirements that a competitor must be specified when a specific set of Appointment Types are selected.

If the user attempts to complete the Appointment without selecting a competitor, a message is displayed asking them to do so.

This works fine when the Appointment is open, but we found instances where people were using the Complete button on the Social Pane to complete the appointment:


Since the Appointment form is not actually opened, the JavaScript that performs the checks is not executed.

That means that in this instance, I have to fall back to using a plugin.  That worked great, except for the fact that the error message I display is not what actually shows up to the user. They see this instead:


Technically, the goal was for them to not be able to complete the Appointment without a Competitor being specified when the Appointment Type was set to a specific set of values.

The plugin does its job and prevents the user from completing the Appointment, but in this case, they have no idea why.

This can be solved with training, but it would be nice if the error message thrown by the plugin was shown to the user.