fix is to add cancelling before timer instantiation and scheduling to eliminate racing of cancel vs create&schedule.
private fun scheduleTimer() {
timer?.cancel()
timer = Timer()
Reproducible when I created multiple LinearDotsLoader programmatically and one by one show/hide them.