OpenIM SDK Version
3.8.3-patch.13(electron-client-sdk / openim-sdk-core;also verified broken in patch.12 and patch.14)
OpenIM Server Version
3.8.x
SDK Platform
Electron FFI SDK
Device Model
mac
Operating System Version
ios26
Bug Description and Steps to Reproduce
Bug Description
OnUserStatusChanged is not dispatched when a subscribed user's online/offline status actually changes. Relogin / calling subscribeUsersStatus again still returns the correct snapshot, so the problem is in the change-detection gate, not in subscription or server presence data.
Root Cause
In internal/interaction/subscription.go → setUserState:
Correct (v3.8.3-patch.10):
change[v.UserID] = v.OnlinePlatformIDs // dispatch only when UNCHANGED — inverted!
}
if !slices.Equal(status.online, v.OnlinePlatformIDs) {
change[v.UserID] = v.OnlinePlatformIDs // dispatch only when changed
}
### Screenshots Link
if equal(status.online, v.OnlinePlatformIDs) {
change[v.UserID] = v.OnlinePlatformIDs // dispatch only when UNCHANGED — inverted!
}
OpenIM SDK Version
3.8.3-patch.13(electron-client-sdk / openim-sdk-core;also verified broken in patch.12 and patch.14)
OpenIM Server Version
3.8.x
SDK Platform
Electron FFI SDK
Device Model
mac
Operating System Version
ios26
Bug Description and Steps to Reproduce
Bug Description
OnUserStatusChangedis not dispatched when a subscribed user's online/offline status actually changes. Relogin / callingsubscribeUsersStatusagain still returns the correct snapshot, so the problem is in the change-detection gate, not in subscription or server presence data.Root Cause
In
internal/interaction/subscription.go→setUserState:Correct (v3.8.3-patch.10):