I has been brought to my attention that the way I'm generating the board/goal states means roughly half of the possible arrangements are unsolvable. My apologies!
I hope to fix this soon, but I'm not sure when I'll get the chance. I'm sorry if you spent a bunch of time in an unsolvable loop.