The Windows Servicing Guy

Tips and tricks from a Windows support engineer on issues related to servicing

You receive 0x800f0904 - CBS_E_MORE_THAN_ONE_ACTIVE_EDITION when installing SP1 for Win7/R2

You receive 0x800f0904 - CBS_E_MORE_THAN_ONE_ACTIVE_EDITION when installing SP1 for Win7/R2

  • Comments 18
  • Likes

During the installation of Service Pack 1 for Windows 7/2008 R2 you might encounter the following error: 

0x800f0904 - CBS_E_MORE_THAN_ONE_ACTIVE_EDITION 

This can be due to the release candidate failing to uninstall properly.  The \Windows\Logs\CBS.log will show the following:   

2011-02-23 17:25:59, Info                  CBS    Appl: detectParent: package: Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17105, parent found: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385, state: Superseded 

2011-02-23 17:25:59, Info                  CBS    Appl: detectParent: package: Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17105, parent found: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7601.17105, state: Installed Invalid 

2011-02-23 17:25:59, Info                  CBS    Appl: detectParent: package: Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17105, parent found: Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7601.17514, state: Installed 

Manually removing the release candidate using DISM will allow for the service pack to properly install.  The commands to do this are (reboots may be required):

Dism /online /remove-package /packagename:Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17105  

Dism /online /remove-package /packagename:Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17514  

NOTE: The DISM command you will need to use is dependent on the version of the service pack release you previously had installed.  In the example above, this information can be determined by the parent Windows Foundation Packages in the CBS.log

 

--Joseph

Comments
  • This is the exact error I get when trying to install SP1.   When I run the DISM I get the same error though after a minute or so of it running..  I'm completely stumped as I've tried everything short of a system reformat.  I've never looked at the CBS file until now and there's just so much data in there.  I do a search for "installed invalid" and it comes up with many different results.  The weird thing is that I was never able to properly install the Windows 7 SP betas or RC's, I kept getting install errors.

  • Thanks for the info Joseph. Heped me solve the problem.

    @Dan: Searching for 'kb976932' in the CBS log would be of help to you in getting the right packages to uninstall using dism then. All the best.

  • @Rahul

    Thanks for the tip.  I did a search for that and it came up with 3 results and all of them were this:

    CBS    Read out cached package applicability for package: Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17514, ApplicableState: 112, CurrentState:101

    I did the following in the cmd prompt:

    Dism /online /remove-package /packagename:Package_for_KB976932~31bf3856ad364e35~amd64~~6.1.1.17514  

    The machine works for a little bit and then it errors out and says:

    "An error occurred - Package_for_KB976932 Error: 0x800f0904"

  • Dan

    Can you open an issue on the forums for me and upload your logs there so people can look over them?

    Thanks!

  • So why would "manually" removing it ( which doesn't look manual to me ) remove all of it while "removing" it removing it won't ?

  • Because the uninstaller sometimes doesnt get all of the binaries off the machine.  It was pre-release code after all.

  • @joscon

    Ok I'm about to create a thread in the forums and provide a link to the CBS log and the Packagelist file as well..

    When I went to type up my question it pointed me to this thread:

    social.technet.microsoft.com/.../d8b379a7-7b39-4449-8238-7835e48b3366

    And I've done pretty much everything that was mentioned and still no luck.   Thanks in advance to any help you can give.

  • Thanks Dan, will you please link your post once its up there so I know which one it is?

  • Sure thing, this is the thread:

    social.technet.microsoft.com/.../b573d5d2-25e3-46bf-87af-5047f66cf536

  • "Because the uninstaller sometimes doesnt get all of the binaries off the machine.  It was pre-release code after all."

    But what I mean is, technically, what is DISM doing that the uninstaller doesn't ? How does DISM know more ? Can you use DISM to uninstall ANY installed program ?

  • DISM is the end all be all of utilites for the ser vicing stack.  The uninstaller is usually encapsulating the DISM commands themselves so that they can be run against the machine.  Basically, nothing is done unless DISM does it.

  • "DISM is the end all be all of utilites for the ser vicing stack.  The uninstaller is usually encapsulating the DISM commands themselves so that they can be run against the machine.  Basically, nothing is done unless DISM does it."

    Then if DISM is really doing the work how could this be true ?

    "Because the uninstaller sometimes doesnt get all of the binaries off the machine."

  • Also, it seems to me that this description of DISM that you get when you run it is totally inaccurate because it's not just used with imaging by any means.

    " DISM enumerates, installs, uninstalls, configures, and updates features

    and packages in Windows images. The commands that are available depend

    on the image being serviced and whether the image is offline or running."

  • For the uninstaller piece, its possible that the command being passed to DISM isnt valid, this would cause a problem and you might to pass the explicit DISM command manually yourself.

    As fo the description, that's exactly what DISM does so I am not sure why you'd say its not accurate.  Eveything in Windows is exposed as a package of some sort.

  • OK, now I see why you use the term

    "manual"

    It's not accurate because for the ordinary person reading that it makes it sound like DISM is only used for working with images for installing on PC's. It doesn't at all make it clear that DISM is also used on a daily basis for everyday things. I certainly had that impression from all of the Microsoft info on it and only realized that it did more from this blog posting. You people at Microsoft need to start understanding that not everyone is a Microsoft employee and has inside info nor is everyone a programmer. If the documentation for stuff is written for Microsoft employees and programmers then only Microsoft employees and programmers will ever understand it. That is why I have been begging for better documentation on the Hard Link issue.