Exchange 2013 Schema Prep Objects to Object References without an Object

When running the Exchange Server 2013 Schema Prep step you may find the Exchange pre-requisites test fails, and an incredibly helpful error message is provided for your reading enjoyment:

The On-Premises test failed with the message: Object reference not set to an instance of an object.

For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.
DidOnPremisesSettingCreatedAnException.aspx

Well, actually, that was rather unhelpful. And the handy URL provided basically just says the content hasn’t been added yet.

Digging in to the ExchangeSetup.log files found in C:\ExchangeSetupLogs is the only way to diagnose what’s really going on. This file will list all of the pre-requisite checks the installer is running through, and if you search for the phrase ‘HasException:True’ you can skip to anything flagged as an issue. This would theoretically identify the exact failure and let you be on your way, right? Nope.

In my case, I ran across this exception:

Evaluated [Setting:IsHybridObjectFoundOnPremises] [HasException:True] [Value:
Microsoft.Exchange.Management.Deployment.HybridConfigurationDetection.HybridConfigurationDetectionException: The On-Premises test failed with the message: Object reference not set to an instance of an object.. ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Exchange.Management.Deployment.HybridConfigurationDetection.HybridConfigurationDetection.TestOnPremisesOrgRelationshipDomainsCrossWithAcceptedDomain(IOnPremisesHybridDetectionCmdlets onPremCmdlets)
   at Microsoft.Exchange.Management.Deployment.HybridConfigurationDetection.HybridConfigurationDetection.RunOnPremisesHybridTest()
   --- End of inner exception stack trace ---

Ok, so we’re getting a little bit closer. You still need to do some Exchange team to real-world language translation, but the gist seems to be that the installer has an issue with the Organizational Relationships and/or Accepted Domains.

Nothing seemed obviously wrong with either of these at first glance, but after combing through each listed object in both sections about ten times I discovered a (non-functional) organizational relationship that had been defined without an Application URI value. Seems like someone had staged this object, but never completed configuration. Deleting the problematic organizational relationship allowed the installer to complete the schema prep step without any further complaints.

It sure would be nice if the Exchange installer was a bit more detailed about exactly which object it was checking or had a problem with, but who doesn’t love a good Easter egg hunt from time to time?

Here

Recent content I've written for you—just for you!— to enjoy while you're here.

There

Quick commentary and links to other sources you'll find interesting. I promise.

Everywhere

Some personal background, links to related projects, and other ways to connect.

Hi there. My name is Tom Pacyk and this is my small home on the web. I love the intersection of design, technology, and communication, which is a combination that led me to a career in sales and marketing roles at places like Zoom and ServiceNow. They're a bit old now, but I also had the opportunity to publish a couple of books along the way.

Portland, Oregon is home for me, my wife Beth, and our three kids, but I'm actually a Midwestern transplant—I grew up in the Chicago suburbs and went to school at Purdue and Illinois. When I find some free time I'm probably going to concerts, rooting for the Portland Timbers, or working on my Sunshine Burn Photography project.