diff --git a/backend/internal/ktmtrainbot/backgroundbookingjob.go b/backend/internal/ktmtrainbot/backgroundbookingjob.go index bd4ffa0..701ed9a 100644 --- a/backend/internal/ktmtrainbot/backgroundbookingjob.go +++ b/backend/internal/ktmtrainbot/backgroundbookingjob.go @@ -169,6 +169,19 @@ func (env *Env) startBooking(job *Booking, username string, password string, cre defaultDevice.UserAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" browser := rod.New().ControlURL(u).MustConnect().DefaultDevice(defaultDevice) + // Close browser when context is done + go func() { + defer func() { + if r := recover(); r != nil { + log.Println("Recovering from browser panic...") + } + }() + + <-timerCtx.Done() + log.Println("Timed out. Closing browser.") + browser.MustClose() + }() + // Defer closing browser defer browser.MustClose()