Похоже, что у вас меньше элементов в q, чем вы ожидали, когда начинали итерацию. Возможно, ваш скрипт пытается получить доступ к q [q.length], то есть к элементу после последнего элемента.
Может ли быть так, что ваш успешный запрос был извлечен из очереди, и у вас есть условие гонки? Вы пытаетесь прервать запрос, который уже завершил свой жизненный цикл? Или вы допустили глупую ошибку, как это иногда делают люди, и неправильно поняли условие завершения цикла?
Несколько мыслей, надеюсь, они помогут.