diff --git a/subscription.go b/subscription.go index 49a8008..8e41c2c 100644 --- a/subscription.go +++ b/subscription.go @@ -3,6 +3,7 @@ package nostr import ( "context" "fmt" + "log" "strconv" "sync" "sync/atomic" @@ -60,6 +61,14 @@ func (sub *Subscription) GetID() string { func (sub *Subscription) start() { var mu sync.Mutex + // Add a defer statement with a recover function to handle panics + defer func() { + if r := recover(); r != nil { + log.Printf("Recovered in start: %s\n", r) + sub.Unsub() + } + }() + for { select { case event := <-sub.events: