The operation failed because the server could not access the distributed cache, Sharepoint 2013

This is related to Sharepoint 2013 news feed. Most common  root cause;

  1. User Profile application pool account not having the full permission over User Profile Service Application.
  • One possiblity is User Profile application pool running account expiration.

Error Message:

SharePoint returned the following error: The operation failed because the server could not access the distributed cache. Internal type name: Microsoft.Office.Server.Microfeed.MicrofeedException. Internal error code: 55. Contact your system administrator for help in resolving this problem.

Refer this URL for microfeed “Internal error” codes, deciphered for any other error codes .

First go to the Centra Administration -> Userprofile service via browser and check the permissions. Then Open the IIS manager and go to the App pools. Identify the App pool account which is running the service applications.  Try re- enter credentials to verify that the account is not expired. If not compare the UPS permission list contains the app pool admin account or not. If not do 2nd step. or else try rebuild Distributed Cache and give permission again. (step 1 and 2 ).

Please Read my previos post to understand what is Distributed Cache.

1).

# Check  cache 
Use-CacheCluster
Get-CacheHost

# Rebuilding Distributed Cache
Remove-SPDistributedCacheServiceInstance
$SPFarm = Get-SPFarm
$cacheClusterName = “SPDistributedCacheCluster_” + $SPFarm.Id.ToString()
$cacheClusterManager = [Microsoft.SharePoint.DistributedCaching.Utilities.SPDistributedCacheClusterInfoManager]::Local
$cacheClusterInfo = $cacheClusterManager.GetSPDistributedCacheClusterInfo($cacheClusterName);
$instanceName =”SPDistributedCacheService Name=AppFabricCachingService”
$serviceInstance = Get-SPServiceInstance | ? {($_.Service.Tostring()) -eq $instanceName -and ($_.Server.Name) -eq $env:computername}
$serviceInstance.Delete()
Add-SPDistributedCacheServiceInstance

Get-CacheHost

 

2).

#Grant permission to UP app pool account to access UPS

$account = New-SPClaimsPrincipal <domain>\<username> -IdentityType WindowsSamAccountName
$UPA = Get-SPServiceApplication <UPS App ID>
$sec = Get-SPServiceApplicationSecurity $UPA
Grant-SPObjectSecurity $sec -Principal $account -Rights “Full Control”
Set-SPServiceApplicationSecurity -Identity $UPA -ObjectSecurity $sec

You can achive the same by using Central administration -> Manage services -> User Profile Service -> Permission (Grant full control )

 

Advertisements