Wednesday, May 20, 2015

Newsfeed Error - A Required SharePoint Feature is not enabled in SharePoint 2013

There was a recent issue when a User clicks on the newsfeed there is nothing there, when they switch from following to everyone they following error is displayed and also when user click on about me
"SharePoint returned the following error: A required SharePoint feature is not enabled. Internal type name: Microsoft.Office.Server.Microfeed.MicrofeedException. Internal error code: 46. Contact your system administrator for help in resolving this problem."
When I go to "about me" it still states "We're almost ready" underneath my Bio, and if I goto tasks "something went wrong" when it tries to load the page
The errors I still see are as follows
in the Application Log:
This appears intermitantly
"The Execute method of job definition Microsoft.Office.Server.UserProfiles.LMTRepopulationJob (ID 8e2b6939-813f-4798-b473-37b891a4ad2d) threw an exception. More information is included below.
Unexpected exception in FeedCacheService.IsRepopulationNeeded: Connection to the server terminated,check if the cache host(s) is running ."

Resolution:
Issue happens for the user whose value personal site capabilities shows “0” and in order to have feeds and other featured working we need the value as “14”
To fix the issue we need to follow either of  below action plan.
1) This can be done - user profile service application - mange user profiles -> search for the user -> look for personal site capabilities and update the value to 14 and save it.
or
2) I have a PowerShell which can help us to update affected users values form 0 to 14.
#Set up default variables
#My Site URL
$mySiteUrl = "http://spf1/my/"
#The part of the picture URL you are trying to find
$currentValue = "0"
#The value that will replace the above
$newValue = "14"
#The internal name for Property
$upAttribute = "SPS-PersonalSiteCapabilities"
#Get site objects and connect to User Profile Manager service
$site = Get-SPSite $mySiteUrl
$context = Get-SPServiceContext $site
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$profiles = $profileManager.GetEnumerator()
foreach ($userProfile in $profiles)
{
if ($userProfile[$upAttribute].toString() -ne 14 )
{
if ($userProfile.AccountName -like "i:0#.f|ldapmember|achavda")
    {
                         $newvalue = $userProfile[$upAttribute].toString()
             $newvalue = $newvalue.Replace($currentURLValue, $newURLValue)
              $userProfile[$upAttribute].Value = $newvalue
             $userProfile.Commit()
            }
}
}

0 comments:

Post a Comment