Hello Andrew,
I am sorry for the delay of this reply and thank for setting up a test environment for us
Regarding your issue, it seems like only the stream has the user_id of 0, and particularly only happened to user badge achievement stream items.. I checked against the points / badges table and there is no user id which is 0. However, I cannot replicate this issue at my local instance
Anyway, I've added a checking to prevent points / badges assignment if the user is invalid. This will also prevent the stream item creation for badges achievement stream item. Below is the file I've modified at your test site.
JOOMLA/administrator/components/com_easysocial/includes/points/points.php
JOOMLA/administrator/components/com_easysocial/includes/badges/badges.php
You will need to copy these two files into your live site. And, to clean up the invalid stream items, please run the below sql statement.
delete a, b
from jos_social_stream as a
inner join jos_social_stream_item as b on a.id = b.uid
where a.actor_id = 0
and a.context_type = 'badges';
Rename the jos_ table prefix to your own Joomla table prefix.
Let me know if you still facing the same issue after the above fix applied at your live site.
Hope this help and have a nice day