The Solution Checker and Process Flows Trick

I have been using the solution checker before any deployment of a solution as we all diligently should. A lot of the time there will be nothing in the results because it’s all good, yey!

Other times, the solution checker will provide useful info on things to be updated to ensure best practice or get overly eager on the use of ‘strict’ in JavaScript. Fun times.

But recently I had a situation where the solution checker was not able to do the one job it is supposed to. I got a lovely ‘Couldn’t be completed’ message which I was surprised by because my solution didn’t have anything particularly amazing in it that could trip it up and in over a year in that environment it had always done its job diligently.

Like all clever people, I googled my problems – see ‘Common issues and resolutions for solution checker’ – but none of that really applied. After a lot of trial and error, I figured it out… it was the business process flow! Let me explain…

Say you have a solution that has a number of things in it including, as it happens, a business process flow. The below screenshot is a solution that only has a ‘Opportunity to Order Process’ business process flow but the argument still stands whatever else you might have in there (good for you!):

So lets say you go and run the solution checker:

You might think in this basic scenario there isn’t much for the solution checker to complain about, but actually it will fail after about 30 seconds of giving it a go:

Sad times. So what’s the problem?

Here’s the fun fact – it appears that the solution checker can only complete a business process flow check if the solution it is checking also contains the table for the business process flow(s) in the solution. Without it/them, the checker won’t be able to do its job and it will fail. The good news is once you add the table like below…

…and then run the solution checker again, all will be groovy and you can then go view the results (if the solution checker finds anything to complain about).

As with many of life’s mysteries, I am not sure why the checker really needs the table there or why it can’t tell me it’s missing things it needs but there you go!