diff --git a/launcher/net/NetJob.cpp b/launcher/net/NetJob.cpp index 03705900c..3dd1c09cf 100644 --- a/launcher/net/NetJob.cpp +++ b/launcher/net/NetJob.cpp @@ -69,11 +69,15 @@ void NetJob::executeNextSubTask() // We're finished, check for failures and retry if we can (up to 3 times) if (isRunning() && m_queue.isEmpty() && m_doing.isEmpty() && !m_failed.isEmpty() && m_try < 3) { m_try += 1; - while (!m_failed.isEmpty()) { - auto task = m_failed.take(*m_failed.keyBegin()); - m_done.remove(task.get()); - m_queue.enqueue(task); - } + m_failed.removeIf([this](QHash::iterator task) { + // there is no point in retying on 404 Not Found + if (static_cast(task->get())->replyStatusCode() == 404) { + return false; + } + m_done.remove(task->get()); + m_queue.enqueue(*task); + return true; + }); } ConcurrentTask::executeNextSubTask(); }