Skip to content

Commit 5246723

Browse files
committed
Add panic recovery for Windows Task Scheduler connection
The taskmaster library can panic when connecting to Windows Task Scheduler in certain environments (like CI) where the service may not be fully available. Add recover() to gracefully handle this. https://claude.ai/code/session_01UDueW9A6SuxugCcsbAMfdB
1 parent 813706a commit 5246723

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

cmd/root_windows.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,22 @@ package cmd
55

66
import (
77
"fmt"
8+
89
"github.com/capnspacehook/taskmaster"
910
)
1011

1112
// GetNextRunFromMonitorKey returns the NextRunTime timestamp from Windows
1213
// Task Scheduler. Since each `cronitor ping` call is run independently,
1314
// this call can't be memoized, regardless of how expensive it is.
1415
func GetNextRunFromMonitorKey(key string) string {
16+
// Use recover to catch panics from taskmaster library
17+
// The library can panic when Task Scheduler is unavailable (e.g., in CI)
18+
defer func() {
19+
if r := recover(); r != nil {
20+
log(fmt.Sprintf("recovered from taskmaster panic: %v", r))
21+
}
22+
}()
23+
1524
taskService, err := taskmaster.Connect()
1625
if err != nil {
1726
log(fmt.Sprintf("err: %v", err))

0 commit comments

Comments
 (0)