Uhmm, food for thought, thanks. I'll let you know how I work this one out.
There is a line of code, later on that pulls the region created out of the block (it's horribly inefficient, I know) and I've added an isnothing() check to make sure the region exists before continuing. It'll do for now. This error is only happening rarely, so I'm not going to go berserk trying to find the solution, but would rather be pro-active than reactive in handling a problem.