Important: PSCONFIG is mandatory for July 2015 CU for SharePoint 2013

An important information was published with one of the individual July 2015 KB articles for SP2013 (KB 3054926) – and therefore potentially very good hidden: July 2015 CU for SharePoint 2013 changes the database schema for the analytics reporting database. The change was required to support URLs with up to 4000 characters length.
The caveat with this is that the crawler now expects the database schema to be updated and will fail to crawl if SharePoint Configuration Wizard did not run to update the database schema.
With other words: unlike other CUs it is mandatory to run the SharePoint Configuration Wizard right after installing the July 2015 CU binaries to ensure that crawl works correct.
If you are using PSCONFIG.EXE it is recommended to use the following commands: 

IISRESET

PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install

45 Comments


  1. Our SharePoint product group released the next monthly cumulative updates. How patching works for SharePoint

    Reply

  2.   With July 2015 CU for SharePoint Server 2013, we have an important update w.r.t. the database

    Reply

  3. Stefan. Is it necessary to run PSCONFIG on all servers in the farm or just the APP server?

    Reply

  4. Hi Michael,
    always on all servers.
    Cheers,
    Stefan

    Reply

  5. iisreset /noforce
    It's better.

    Reply

  6. What, no love for the SP products configuration wizard?

    Reply

  7. Our SharePoint product group released the next monthly cumulative updates. How patching works for SharePoint

    Reply

  8. whenever I use CSOM to get user profile it throws exception " 400 Bad Request " and when i looked at ULS logs this is what i see "Original error: System.MissingMethodException: Method not found: 'System.String Microsoft.Office.Server.UserProfiles.UserProfile.get_FollowPersonalSiteUrl()'.

    at Microsoft.Office.Server.UserProfiles.UserProfileServerStub.GetProperty(Object target, String propName, ProxyContext proxyContext)

    at Microsoft.SharePoint.Client.ServerStub.GetPropertyWithMonitoredScope(Object target, String propertyName, ProxyContext proxyContext)"

    This seems to be happening only after this CU is installed .

    Reply

  9. Hi Divesh,

    please compare the version of the Microsoft.Office.Server.UserProfiles.ServerStub.dll in the c:inetpubwwwrootwss\_app_bin directory with the one in C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions15CONFIGBIN directory.
    It might be that the dll did not get updated when running PSCONFIG.
    If that is the case, please backup the version in the _app_bin directory and copy the version from 15CONFIGBIN to the _app_bin directory to fix the issue.

    Cheers,
    Stefan

    Reply

  10. Hi Divesh,
    actually please try the following Powershell CmdLet rather than manually copying the dll:
    Install-SPApplicationContent
    That should take care of the copy.
    Cheers,
    Stefan

    Reply

  11. Hi Stefan, Thanks for the post. What if we are doing the August CU directly without going to July? Would it still need PSC right after the update?

    Reply

  12. Hi Vishwas,
    yes. You have to do this if you are on an older CU than July 2015 CU and would like to go to a CU equal or higher than July 2015 CU. Does not matter which. The code changes in July 2015 CU (which are obviously included in all future CUs as well) are incompatible
    with the DB schema from before July 2015 CU.
    Cheers,
    Stefan

    Reply

    1. Are there any checks we can run that will tell us whether a farm is victim to this? We inherited farms that were supposedly built initially with July 2015 cu, though unclear whether it was slipstreamed, or built with sp1 then patched. Some anomalies remain…

      Reply

      1. Hi Len,
        If you have ran PSConfig since July 2015 CU was installed then you are fine.
        Cheers,
        Stefan

        Reply

  13. Hi Stefan,
    maybe you have some hints. On one of our servers, the command fails, but running Config Wizard UI finishes without issues. Can we then ignore the powershell command? Or could this lead to further issues with later updates?
    Additionally, thanks for your fast help in another post 🙂

    Reply

  14. Hi Jessica,
    can you share the exact error message you get?
    Cheers,
    Stefan

    Reply

  15. Hi Stefan,
    It just fails in the last step and the error log is listing many of these entries:

    – Feature upgrade action 'AddContentTypeField' threw an exception upgrading Feature 'CTypes' (Id: 15/'695b6570-a48b-4a8e-8ea5-26ea7fc1d162') in Site 'http://szportal': The object has been updated by another user since it was last fetched.

    – Feature upgrade incomplete for Feature 'CTypes' (Id: 15/'695b6570-a48b-4a8e-8ea5-26ea7fc1d162') in Site 'http://szportal'. Exception: The object has been updated by another user since it was last fetched.

    Followed by endless lines of this kind: Es existiert keine Website mit dem Namen "/china/HumanResources/EmployeeRecords/Former/lliug". The object has been updated by another user since it was last fetched.

    I know these webs don't exist anymore. We also tried to clean them up with all ways we could find, to get rid off orphaned items.

    Reply

  16. Mmmmmh maybe I could try to create the deleted websites and then delete them again, hopefully they will clean up 😀

    Reply

  17. You might want to open a support case to get this cleaned up.

    Reply

  18. 🙁 ms support told me when UI Wizard finishes, everything must be fine ^^ ok thanks for your time

    Reply

  19. Hi Jessica,
    support is correct. Everything should be fine in regards to the fix. But you still have the orphan sites.
    My recommendation was to open a case to get the orphans cleaned up. These can make trouble in other scenarios as well.
    Cheers,
    Stefan

    Reply

  20. @Jessica – I have come across similar problems in the past. I have tried a couple things with some success so maybe they may work for you.

    1. Detach/reattach the content DB (first unmount it). You've likely tried this.
    2. Repair the content DB via PowerShell. You've likely tried this as well.
    3. If this persists after a reboot, additional caching may be the culprit. Objects are not always properly disposed of or remain in memory far too long. How I've forced this was to reset the config cache on all of the servers. It's not something you should
    rush to do, but it has been handy a few times when the servers and/or databases seem out of sync. If you follow the procedure closely, it is safe to do in off-hours.

    http://blogs.msdn.com/b/jamesway/archive/2011/05/23/sharepoint-2010-clearing-the-configuration-cache.aspx

    Reply

  21. Hi Stefan,
    can you please update this article with the further switches of PSConfig or directly reference to the ‘http://blogs.technet.com/b/stefan_gossner/archive/2015/08/20/why-i-prefer-psconfigui-exe-over-psconfig-exe.aspx’:
    PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources
    (there are so many references around the web to this article….)
    Thanks Peter.

    Reply

    1. Thanks for the heads-up! I updated the command.

      Reply

  22. Hi Stephen,
    we went from the May 2015 to the November 2015. We did not catch that we had to run the command this way. we ran it like this:
    Psconfig.exe -cmd upgrade -inplace b2b -wait -force
    after the CU, our search was not working and we found this post. We have since run the command from this post and our search is working. However, we are seeing these errors in the application event logs:
    1. The Execute method of job definition Microsoft.Office.Server.Search.Administration.CustomDictionaryDeploymentJobDefinition (ID d2332e81-03a5-40f6-a89b-b9bf9b7341ac) threw an exception. More information is included below.
    Failed to run flow Microsoft.CustomDictionaryDeployment.
    2. The Execute method of job definition Microsoft.Office.Server.Search.Administration.QueryClassificationDictionaryUpdateTimerJobDefinition (ID a08f1d7c-9a9f-4592-bf7d-1fb4389ff1eb) threw an exception. More information is included below.
    Unable to locate Managed Metadata Proxy which is default keyword taxonomy for SSA f66aeb20-46bd-460c-b943-7e8d85be8837
    Note: we do not have the Managed Metadata Service running.
    everything seems to be working fine, but I am concerned about these errors. I have re-indexed and re-crawled and have rerun this command and the errors continue.
    Any ideas?

    Reply

    1. Hi Mark,
      these are not known issues with the CUs. I would recommend to open two separate support cases with Microsoft for these two issues to get them analyzed.
      Cheers,
      Stefan

      Reply

  23. will running the psconfig mess up with my custom configuration on the site collection? my understanding is this utility will upgrade all the databases.

    Reply

    1. Hi Mei,
      PSCONFIG updates the database schema of all databases – not the database content.
      Cheers,
      Stefan

      Reply

      1. Thanks, Stefan. that`s good to know. i am a bit paranoid as it`s a production environment.

        Reply

  24. Hi Stefan,
    Do you know if the September CU will install directly from SP 1 upgrade. Also does it include the ability to redirect Mysites to Delve?
    We have tried pointing the Mysite URl to our domain-my in Office 365 but as it tries to resolve to usernames it errors. Will the September CU allow more conifg and send all profiles to Delve from SP 2013?
    Thanks

    Reply

    1. Hi Luke,
      September CU can be installed on top of SP1.
      Sorry – I don’t have the answer to your second question available.
      Cheers,
      Stefan

      Reply

  25. Thank you for this! It has helped me many times!
    I refernce this page often!
    I had a problem where I upgraded and Central Administration showed http://__Central_Admin__/_admin/FarmServers.aspx Server XYZ Status — Upgrade Required.
    I tried to clear the configuration cache and then tried to run Get-SPProduct -Local
    I still had the problem. Running your powershell command worked! I ran it on the servers that had the “problem” and your psconfig.exe fixed it. Thank you!

    Reply

  26. thank you for the post. Isn’t mandatory for all CU to run the psconfig after the CU installation? or is it depending on the CU requirements? If I install for example, the CU for May, 2016, does it include all previous fixes contained on the previous CUs? I am new on this, thank you for your answers.

    Reply

    1. Hi Javi,
      it is required to fully apply the CU but usually you can run in backward compatibility mode for a couple of weeks if your maintenance windows is not big enough to install the CU and run PSCONFIG.
      This CU is different as installing it without running PSCONFIG right away breaks search.
      Cheers,
      Stefan

      Reply

      1. thank you, but once I installed the one for July, can I jump to, let’s say, the one for May 2016 without installing the previous ones? does it include the fixes for the ones between those CU?, regards,

        Reply

        1. Hi Javi,
          they are named CU (cumulative update) because they are cumulative.
          So each CU includes all previous CUs.
          Cheers,
          Stefan

          Reply

  27. Hey Stefan, can you confirm whether the PSCONFIG need to be run immediately after the install of the July 2016 CU when moving from Feb 2016 CU? Or it’s just applicable only if currently the farm is on July 2015 or older CU patch level?
    Thanks!

    Reply

    1. Hi Shail,
      only when your farm was on a level from July 2015 or older you have to run it right away.
      Otherwise you can schedule running PSConfig to a later date.
      But if you plan to delay running PSConfig ensure to run the “install-spapplicationcontent” cmdlet to ensure that the correct DLLs get loaded.
      Cheers,
      Stefan

      Reply

      1. Thanks Stefan. The “install-spapplicationcontent” cmdlet I thought was part of PSCONFIG. So, when shall we run this cmdlet – before running the psconfig or later? Also, for multi-server farm like ours, do we need to run it on each machine or just on one server?

        Reply

        1. Hi Shail,
          PSConfig performs the same action as install-spapplicationcontent.
          But in case that you are planning to delay running psconfig to plan the DB ugrade step for another day – ensure to run install-spapplicationcontent after installing the fixes to ensure that dlls in the _app_bin directory are updated. Otherwise the dlls installed do not match the dlls in the _app_bin directory which can lead to exceptions and other problems.
          Cheers,
          Stefan

          Reply

  28. I am working on a new install and ran psconfig.exe -cmd upgrade -inplace b2b -force per the installation guide that was provided by the consultant who installed SP2013 first.
    I get Configuration of SharePoint Products failed. and when I check the PSCDiagnostics log is doesn’t tell me what the issue is.
    If I run the command you provided will this work and do the same action?

    Reply

    1. Hi Tangie,
      first of all: that is not a sufficient command. You need to use more parameters:
      PSConfig.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
      See here for details:
      https://blogs.technet.microsoft.com/stefan_gossner/2015/08/20/why-i-prefer-psconfigui-exe-over-psconfig-exe/
      In addition if a problem occurs during the upgrade the problem is usually reported in the upgrade.log and not in the PSCDiagnostics.log.
      Cheers,
      Stefan

      Reply

  29. Hi, does this two errors means I need to run command you provided:
    First error:
    Application Server Administration job failed for service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (2f6b7351-b864-48ea-bd6c-5a348a669bf9).
    Reason: The device is not ready.
    Technical Support Details:
    System.IO.FileNotFoundException: The device is not ready.
    at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
    at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)
    Second error:
    The mount operation for the gatherer application 3445ee04-0f4e-4e5e-a54f-b7ac19304e81-crawl-0 has failed because the schema version of the search gatherer database is less than the minimum backwards compatibility schema version supported for this gatherer application. The database might not have been upgraded.

    Reply

    1. The second error indicates that psconfig is required.

      Reply

      1. Thx, second error is resolved and that for some reason resolved the first error 🙂

        Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.