diff --git a/pkg/agent/legacy_events.go b/pkg/agent/legacy_events.go index 30761e8e6..794a5a330 100644 --- a/pkg/agent/legacy_events.go +++ b/pkg/agent/legacy_events.go @@ -2,11 +2,13 @@ package agent import ( "context" + "fmt" "sync" "sync/atomic" "github.com/sipeed/picoclaw/pkg/bus" runtimeevents "github.com/sipeed/picoclaw/pkg/events" + "github.com/sipeed/picoclaw/pkg/logger" ) const defaultEventSubscriberBuffer = 16 @@ -88,7 +90,14 @@ func (al *AgentLoop) UnsubscribeEvents(id uint64) { if !ok { return } - sub := value.(legacyEventSubscription) + sub, ok := value.(legacyEventSubscription) + if !ok { + logger.WarnCF("agent", "UnsubscribeEvents: unexpected type in subscription map", map[string]any{ + "id": id, + "type": fmt.Sprintf("%T", value), + }) + return + } sub.cancel() if sub.sub != nil { _ = sub.sub.Close()