If you create a new Service and set the duration of the service to nothing or 0 and reload the frontend page, the server runs for a few minutes and returns an internal server error with (HTTP Status Code 500)
yes this is by design. Way of calculating time slots goes like this. It take start time of connection and add duration of service as many time as there can be before reaching end time of connection. But if duration is 0 then you will never reach end time because each iteration will be +0 you will end up with infinite loop.
Best regards, Nikola