From 4a59e6012d14584632c3d2f4104bf80770118b7e Mon Sep 17 00:00:00 2001 From: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> Date: Fri, 17 Apr 2026 03:45:33 +0000 Subject: [PATCH] NetJob: do not automatically retry on 404 response Signed-off-by: 0x189D7997 <199489335+0x189D7997@users.noreply.github.com> --- launcher/net/NetJob.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/launcher/net/NetJob.cpp b/launcher/net/NetJob.cpp index dae149ab3..971f160d8 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(); }