on main help sign in
fix(posthog): do not discard custom properties of an error (#2829)
ae1c95aAndrey Nering
internal/event/event.go+9−3
@@ -97,13 +97,19 @@ func Error(errToLog any, props ...any) {
97 if client == nil || distinctId == "" || errToLog == nil {
97 if client == nil || distinctId == "" || errToLog == nil {
98 return
98 return
99 }
99 }
100+
100− posthogErr := client.Enqueue(posthog.NewDefaultException(
101+ exception := posthog.NewDefaultException(
101 time.Now(),
102 time.Now(),
102 distinctId,
103 distinctId,
103 reflect.TypeOf(errToLog).String(),
104 reflect.TypeOf(errToLog).String(),
104 fmt.Sprintf("%v", errToLog),
105 fmt.Sprintf("%v", errToLog),
105− ))
106+ )
107+ if exception.Properties == nil {
108+ exception.Properties = posthog.NewProperties()
109+ }
110+ exception.Properties = exception.Properties.Merge(pairsToProps(props...))
111+
106− if posthogErr != nil {
112+ if posthogErr := client.Enqueue(exception); posthogErr != nil {
107 slog.Error("Failed to enqueue PostHog error", "err", errToLog, "props", props, "posthogErr", posthogErr)
113 slog.Error("Failed to enqueue PostHog error", "err", errToLog, "props", props, "posthogErr", posthogErr)
108 return
114 return
109 }
115 }