This happens because the start() method clears the pid before synchronizing the enabled state to the database, due to Play!'s transaction structure. A possible work-around would be to make the job scheduler clear the pid when an application has the enabled status.