Forum Discussion

_Sammy_'s avatar
_Sammy_
Copper Contributor
Jan 05, 2023

MS Bookings bug when rescheduling appointments in certain conditions

Hi,

 

I am trying out a lot of scenarios in MS Bookings.

Most of it seems to work flawlessly, but it seems that I found a bug in one of the scenarios in MS Bookings. I'll try to give all details, so it can be reproduced hopefully:

  • There is 1 service "X" (with 1 serviceID) that contains timeslots on multiple days like shown in the image below

     

  • There is a maximum of 2 seats for each slot.

  • At the moment, there is no slot reserved by anyone.

  • "Person 1" schedules an appointment on "datetime 1" (which has a unique SelfServiceAppointmentId).

  • "Person 2" schedules an appointment on "datetime 2" (which has a unique SelfServiceAppointmentId).

  • "Person 1" wants to reschedule its appointment to "datetime 2". It sees the same screen again with all the timeslots, just as before. This makes sense, since all timeslots have still at least 1 seat available.

     

  • When "Person 1" selects the timeslot of "datetime 2" and wants to continue, an error message appears that another person already selected this timeslot and that the hour is no longer available.

  • To make things worse, the whole day becomes greyed-out after the error message, even though only 1 timeslot was supposedly "wrong" (here my "datetime 2" example was on January 10th).

     

  • When you go back again to the previous screen (by clicking "Previous" at the bottom) and then refresh the page and then try to reschedule again, all the dates are available again. If you try the same "datetime 2" again however, the same error repeats. Over and over again.

  • When "Person 3" wants to make an appointment on "datetime 2", there is not a single problem for "Person 3".

  • On the other hand, when "Person 3" makes an appointment on "datetime 1" and "Person 1" THEN tries to reschedule to "datetime 2", there is not a single problem as well. The rescheduling works just fine.

 

I think the bug exists because of some sort of collision with the SelfServiceAppointmentId. It is linked to a specific "datetime appointment" and gets created each time (with each time another ID) a new slot has been filled in by at least one person. When you reschedule to another datetime, where no seats have been filled in yet, there are 2 possibilities at the moment:

  1. When the original timeslot has more than 1 seat filled (so at least 1 seat is remaining after the rescheduling), a new SelfServiceAppointmentId will be created for the rescheduled datetime (in contrary, when a seat is already filled in the rescheduled datetime, the original datetime will inherit the existing SelfServiceAppointmentId of the datetime that it gets rescheduled to).

  2. When the original timeslot has no other seats filled, the rescheduled datetime will get the SelfServiceAppointmentId of the original datetime.

Most likely, it is because of this second condition that an error occurs, since the system does not know what to do with those 2 original SelfServiceAppointmentId at that point.

 

 

I hope this gives you enough detail to reproduce the issue.

 

 

Thanks in advance!

Resources