It seems like that cluster single page also call the same method, perhaps you can try replace my following code into the same method under the same file and see how it goes.
public function getSource($size = SOCIAL_AVATAR_MEDIUM, $absolute = true)
{
// Get config
$config = ES::config();
// Set the default cover
$default = SOCIAL_JOOMLA_URI . $config->get('covers.default.' . $this->type . '.' . SOCIAL_COVER_DEFAULT);
// If there is a cover override in the template, use it instead.
$app = JFactory::getApplication();
$overridePath = JPATH_ROOT . '/templates/' . $app->getTemplate() . '/html/com_easysocial/covers/' . $this->type . '/default.jpg';
if (JFile::exists($overridePath)) {
$default = rtrim(JURI::root(), '/') . '/templates/' . $app->getTemplate() . '/html/com_easysocial/covers/' . $this->type . '/default.jpg';
}
// Test if the cover is a photo
if ($this->photo_id) {
$photo = $this->getPhoto();
if (!$photo->id) {
$uri = $default;
} else {
$uri = $photo->getSource('large');
$customView = $app->input->get('view');
$customLayout = $app->input->get('layout');
$viewAllowed = array('groups', 'events', 'pages');
// Cluster listing page
if (in_array($customView, $viewAllowed) && $customLayout != 'item') {
$uri = $photo->getSource('thumbnail');
}
}
// The file might not exist, so we need to revert to the default
if($uri === false) {
$uri = $default;
}
} else {
$uri = $default;
}
return $uri;
}