SharePoint 2019 wsp deployment does not deploy to all farm servers

6 comments

Today I would like to blog about an issue that I got these days when I tried to deploy a SharePoint 2019 farm solution. The client has a SharePoint 2019 farm composed of 2 Front-end servers and 2 Application servers.

The solution worked without any issues on the development environment, which is a Single-Server farm, but when I deployed the solution to the testing farm described above, I’ve noticed that the solution was not deployed to all servers in the farm. Sometimes was deployed just to 1 server, sometimes to 2 or 3 servers, but very rarely deployed to all 4 servers. The servers where it got deployed were not the same after each deployment, so I couldn’t isolate the issue to one particular server.

I tried every possible solution I found on the internet, iisreset on all servers, timer service restart on all servers, SharePoint configuration cache deleted on all servers (details), all servers restarted, but nothing worked.

Finally I came across this technet post where I found out that it is a known issue with SharePoint 2019 deployment, when multiple servers simultaneously writing to the config cache. They are also saying , a workaround is to deploy the solution per PowerShell  (Install-SPSolution) and use the -Local parameter on each server, but that dind’t worked neither for me.

Accordingly to the technet post the fix for this was included in the September 2019 Public Update for SharePoint Server 2019. To install the September 2019 Public Update you have to download and run this 2 files download1 and download2. I’ll update this blog post as soon as I install the Public Update and check if the issue is fixed.

Update (10/08/2019): unfortunately the September 2019 Public Update didn’t fixed the issue.

 

6 comments on “SharePoint 2019 wsp deployment does not deploy to all farm servers”

  1. Dear Octavian,

    I hope you would found some fix for this issue. It will be really helpful, if you can share the details about fix or workaround.

    1. Hi Ash

      unfortunatelly I couldn’t find any fix, but I implemented a workaround. In the deployment script, after Install-SPSolution I check the Deployed property of the solution, if this is false, that means it was not globally deployed, so I execute the Install-SPSolution cmdlet again:

      $solution = Add-SPSolution -LiteralPath $path
      Install-SPSolution –Identity $solutionName –GACDeployment -Force

      while($solution.JobExists)
      {
      Write-Host “`Deployment in progress…” -ForegroundColor Yellow
      start-sleep -s 10
      }

      $solution = Get-SPSolution -Identity $solutionName
      if($solution.Deployed -eq $False) {
      Write-Host “The solution was not globally deployed, try once more” -ForegroundColor Yellow
      Install-SPSolution –Identity $solutionName –GACDeployment -Force
      }

      I may guess it depends on the farm configuration, but in my case, second time always works. You can also check the servers where the solution was deployed, by checking the DeployedServers property of SPSolution.

      https://docs.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.administration.spsolution.deployedservers?view=sharepoint-server#Microsoft_SharePoint_Administration_SPSolution_DeployedServers

      https://docs.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.administration.spsolution.deployed?view=sharepoint-server#Microsoft_SharePoint_Administration_SPSolution_Deployed

      I hope this helps you
      Octavian

      1. hi,

        In your script you set the var $spSolution but after you use $solution

        $spSolution = Get-SPSolution -Identity $solutionName
        if($solution.Deployed -eq $False) {

Leave a reply to Octavian Sfetcu Cancel reply