SharePoint 2013 Unable to change topology when Generation controller is not active

When making a change to the search topology, you need to have at least one index component in the active state with no warnings for each partition. This makes sense if you are adding additional partitions which would cause the indexed documents to be repartitioned. In that case you would need a valid copy of every document in the index to redistribute. Or, if you add additional replicas, you need a source to populate that replica with indexed documents. Unfortunately the constraint of having an indexer controller up in each partition applies to all topology changes. For examples, you could not add an additional admin component if one of you partitions is down.

Here is the error you'll see if you try to activate an new topology in this state:


PS C:\Users\SPFarm> Set-SPEnterpriseSearchTopology -Identity $newTopology
Set-SPEnterpriseSearchTopology : Topology activation failed. Management called failed with System.InvalidOperationException: 'Unable to change topology when Generation controller is not active' at    at Microsoft.Ceres.SearchCore.IndexController.IndexController.IsEmptyIndex(String indexSystemName)
   at Microsoft.Ceres.SearchCore.IndexController.IndexControllerManagementAgent.WrapCall[T](Func`2 original)
At line:1 char:1
+ Set-SPEnterpriseSearchTopology -Identity $newTopology
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (Microsoft.Offic...tSearchTopology:SetSearchTopology) [Set-SPEnterpriseSearchTopology], SearchTopologyActivationException
    + FullyQualifiedErrorId : Microsoft.Office.Server.Search.Cmdlet.SetSearchTopology


This is current as of the March 2013 Public Update. This appears to be yet another reason to assure your active topology is fault-tolerant and not to rely on adding additional components in the event of a failure.