My research on this matter has turned up this thread and a few like it, seems like an older problem yet to be fixed -
The problem is there are no missing elements in the array, and a CFDUMP whilst debugging the problem has confirmed this. It also does not answer the question on why, if I merely refresh the browser after getting the error page, the page reloads as expected. Is CF building the array incorrectly before I loop over it?