Working intermittently, there is a race condition to do with the queue which causes an set of errors (more then one depending on the point in the race)