none
Upgrading SSRS 2014 to 2016 - Index was out of range. Must be non-negative and less than the size of the collection. RRS feed

  • Question

  • I've just tried to upgrade our main SSRS 2014 instance to 2016.  

    It failed towards the end of the install with the following error:

    The following error has occurred:
    
    Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index
    
    For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=13.0.1601.5&EvtType=0x35C10BED%25400xF538E98B

    It looked like SSRS was pretty much installed - but the service would start and stop again.

    I've rolled the VM's and database back for the time being.

    Anyone come across this when upgrading SSRS before? It looks like this error usually pops up at the report level.  I might try deleting all the reports and trying the upgrade again to rule them out

    Thursday, June 2, 2016 4:55 PM

Answers

  • Removing the SSRS SSL bindings before carrying out the upgrade fixed the issue.  I then simplly put the SSL bindings back after the upgrade.  SSRS 2016 seems to handle SSL certificates slightly differently as it didn't like the same bindings setup as our previous rsreportserver.config
    • Marked as answer by DJL Thursday, June 2, 2016 9:05 PM
    Thursday, June 2, 2016 9:05 PM

All replies

  • Looks like it maybe an SSL issue:

    /*
    (01) 2016-06-02 20:49:18 RS: Validating SSL information
    (01) 2016-06-02 20:49:18 RS: Checking the certificate bound to port 443 for the report server urls.
    (01) 2016-06-02 20:49:18 RS: Checking the certificate bound to port 443 for the web portal urls.
    (01) 2016-06-02 20:49:18 RS: This url https://+:443 is a wildcard url and can't be used
    (01) 2016-06-02 20:49:18 RS: Couldn't find a server certificate with either the machine name or the fully qualified doamin name, so removing the url reservation.
    (01) 2016-06-02 20:49:18 Slp: Configuration action failed for feature RS_Server_Adv during timing ConfigRC and scenario ConfigRC.
    (01) 2016-06-02 20:49:18 Slp: Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index
    (01) 2016-06-02 20:49:18 Slp: The configuration failure category of current exception is ConfigurationFailure
    (01) 2016-06-02 20:49:18 Slp: Configuration action failed for feature RS_Server_Adv during timing ConfigRC and scenario ConfigRC.
    (01) 2016-06-02 20:49:18 Slp: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    (01) 2016-06-02 20:49:18 Slp: Parameter name: index
    (01) 2016-06-02 20:49:18 Slp:    at System.Collections.Generic.List`1.RemoveAt(Int32 index)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.ValidateSSL(ReportServerConfiguration serverConfig)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.Upgrade_ConfigRC(Dictionary`2 actionData, Version version)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.UpgradeImpl(ConfigActionTiming timing, Dictionary`2 actionData, Version fromVersion)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary`2 actionData, PublicConfigurationBase spcbCurrent)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary`2 actionData, PublicConfigurationBase spcbCurrent)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)
    (01) 2016-06-02 20:49:18 Slp:    at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
    (01) 2016-06-02 20:49:18 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
    (01) 2016-06-02 20:49:18 Slp: Inner exceptions are being indented
    (01) 2016-06-02 20:49:18 Slp: 
    (01) 2016-06-02 20:49:18 Slp: Exception type: System.ArgumentOutOfRangeException
    (01) 2016-06-02 20:49:18 Slp:     Message: 
    (01) 2016-06-02 20:49:18 Slp:         Index was out of range. Must be non-negative and less than the size of the collection.
    (01) 2016-06-02 20:49:18 Slp:         Parameter name: index
    (01) 2016-06-02 20:49:18 Slp:     HResult : 0x80131502
    (01) 2016-06-02 20:49:18 Slp:     Data: 
    (01) 2016-06-02 20:49:18 Slp:       SQL.Setup.FailureCategory = ConfigurationFailure
    (01) 2016-06-02 20:49:18 Slp:       WatsonConfigActionData = UPGRADE@CONFIGRC@RS_SERVER_ADV
    (01) 2016-06-02 20:49:18 Slp:       WatsonExceptionFeatureIdsActionData = System.String[]
    (01) 2016-06-02 20:49:18 Slp:     Stack: 
    (01) 2016-06-02 20:49:18 Slp:         at System.Collections.Generic.List`1.RemoveAt(Int32 index)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.ValidateSSL(ReportServerConfiguration serverConfig)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.Upgrade_ConfigRC(Dictionary`2 actionData, Version version)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.RSExtension.SQLRSConfigurationPrivate.UpgradeImpl(ConfigActionTiming timing, Dictionary`2 actionData, Version fromVersion)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary`2 actionData, PublicConfigurationBase spcbCurrent)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary`2 actionData, PublicConfigurationBase spcbCurrent)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId)
    (01) 2016-06-02 20:49:18 Slp:         at Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
    (01) 2016-06-02 20:49:18 Slp: Watson Bucket 1 
     Original Parameter Values
    */

    Thursday, June 2, 2016 8:15 PM
  • Removing the SSRS SSL bindings before carrying out the upgrade fixed the issue.  I then simplly put the SSL bindings back after the upgrade.  SSRS 2016 seems to handle SSL certificates slightly differently as it didn't like the same bindings setup as our previous rsreportserver.config
    • Marked as answer by DJL Thursday, June 2, 2016 9:05 PM
    Thursday, June 2, 2016 9:05 PM