Windows SBS 2003 Update Services Gives Error: The Element Already Exists in the Collection
[Today's post comes to us courtesy of Damian Leibaschoff and Justin Crosby from Commercial Technical Support and Chris Puckett from Product Quality]
UPDATE 4/19/2010
The Exchange 2000 security update, 976703, contained an identifier in the metadata that was not unique enough for a WSUS API call used by SBS 2003 to differentiate 976703 from the Exchange 2003 security update, 976702. This resulted in the error in the SBS 2003 console and the Server Status Report.
The Exchange 2000 security update, 976703, has since been expired and simultaneously re-released with modified metadata. The issue with the SBS 2003 Console and the Server Status Report will resolve itself after the next WSUS Sync. If you did or did not decline 976703 before, there is no need to take any further action after WSUS has synced again. You can wait for the next sync to occur as scheduled or sync manually if you wish. After successfully re-syncing you may need to close and re-open the SBS console for the error to disappear.
Symptom:
After synchronizing updates released on Tuesday, April 13, 2010, the Update Services node in the SBS 2003 Console returns an error: The element already exists in the collection. Parameter name: value.
--------------------------------------------------------------------------------
Server Error in '/UpdateServices' Application.
--------------------------------------------------------------------------------The element already exists in the collection. Parameter name: value
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: The element already exists in the collection. Parameter name: value
Source Error:
Line 194: </div>
Line 195: <%Response.Flush();
Line 196: RenderPage();%>
Line 197: <div id="divForm" style='display: none'>
Line 198: <form id="formMain" method="post" runat="server">
Source File: c:\inetpub\UpdateServices\Home.aspx Line: 196Stack Trace:
[ArgumentException: The element already exists in the collection.
Parameter name: value]Microsoft.UpdateServices.Administration.WsusCollection.CheckItemIsValid(Int32 index, Object value) +152
Microsoft.UpdateServices.Administration.WsusCollection.OnInsert(Int32 index, Object value) +20
System.Collections.CollectionBase.System.Collections.IList.Add(Object value) +106
Microsoft.UpdateServices.Administration.UpdateSummaryCollection.Add(IUpdateSummary value) +10
Microsoft.UpdateServices.Internal.BaseApi.UpdateSummary.BuildSummaryCollection(GenericReadableRow[] rows, GroupBy groupBy) +476
Microsoft.UpdateServices.Internal.BaseApi.ComputerTargetGroup.GetSummaryPerUpdate() +117
Microsoft.SBS.UpdateServices.DataProvider.GetPendingUpdateCollection() +420
Microsoft.SBS.UpdateServices.DataProvider.GetPendingUpdateCounts() +5
Microsoft.SBS.UpdateServices.StatusPage.Utility.GetStatusItems(Boolean waitingForSyncStart) +2705
Microsoft.SBS.UpdateServices.StatusPage.formHome.RenderPage() +23
ASP.Home_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in c:\inetpub\UpdateServices\Home.aspx:196
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Page.ProcessRequestMain() +1926
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:1.1.4322.2443; ASP.NET Version:1.1.4322.2407
The Server Status Report may also fail to deliver.
Event Type: Error
Event Source: ServerStatusReports
Event Category: None
Event ID: 1
Description:
Server Status Report:
URL: https://localhost/monitoring/perf.aspx?reportMode=1&allHours=1
Error Message: The element already exists in the collection.
Parameter name: value
Stack Trace: at Microsoft.UpdateServices.Administration.WsusCollection.CheckItemIsValid(Int32 index, Object value)
at Microsoft.UpdateServices.Administration.WsusCollection.OnInsert(Int32 index, Object value)
at System.Collections.CollectionBase.System.Collections.IList.Add(Object value)
at Microsoft.UpdateServices.Administration.UpdateSummaryCollection.Add(IUpdateSummary value)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateSummary.BuildSummaryCollection(GenericReadableRow[] rows, GroupBy groupBy)
at Microsoft.UpdateServices.Internal.BaseApi.ComputerTargetGroup.GetSummaryPerUpdate()
at Microsoft.SBS.UpdateServices.DataProvider.GetPendingUpdateCollection()
at Microsoft.SBS.UpdateServices.DataProvider.GetPendingUpdateCounts()
at Microsoft.SBS.UpdateServices.StatusPage.Utility.GetStatusItems()
at usage.frmPerf.PopulateStatusItems()
at usage.frmPerf.renderReportWorker()
at usage.frmPerf.renderReport()
Resolution:
Decline the Security Update for Exchange 2000 Server Service Pack 3 (KB976703) using the steps below.
- Click Start, Administrative Tools, Windows Server Update Services.
- On the Action menu, click Search.
- In the text box, enter 976703 and click Find Now.
- When the result is returned, right-click the 976703 update for Exchange 2000 and click Decline.
- 5. Click Yes on the pop-up.
- Click Close in the Search dialog.
- If you happen to have one or more Exchange 2000 Servers in your environment, you will want to install Security Update for Exchange 2000 Server Service Pack 3 (KB976703) manually from Microsoft Update or from the Microsoft Download Center.
Comments
Anonymous
April 15, 2010
Thanks SBS Blog - this solution worked perfectly for me!Anonymous
April 15, 2010
Thanks for making my day a lot easier guys! worked like a charm! Appreciate the effort!Anonymous
April 15, 2010
This problem had me totally foxed, on my SBS2003 server not only was the 'Update Services' playing up, but also the 'Monitoring and Reporting'. I'm amazed and thankful that you managed to find the cause of and solution to the problem, but I am surprised that such a seemingly trivial thing can bring down two important parts of the server. Once again many thanks.Anonymous
April 15, 2010
The comment has been removedAnonymous
April 15, 2010
What a bug, i was searching for hours.... Thank you very much!Anonymous
April 15, 2010
And the Performance and Reportfeature got some issues too, after the patch day. Are there any solutions available for it?Anonymous
April 15, 2010
The comment has been removedAnonymous
April 15, 2010
This was exactly the problem I had on our SBS 2003 and this resolution fixed it. Excellent post. Thanks.Anonymous
April 16, 2010
The comment has been removedAnonymous
April 18, 2010
Thanks a lot i just had the problem on a few SBS servers now. regards Koen