From 2146559a226c98c207fe92b8de861760e0349dc4 Mon Sep 17 00:00:00 2001 From: abhicommands <114682464+abhicommands@users.noreply.github.com> Date: Fri, 6 Feb 2026 22:21:48 -0500 Subject: [PATCH 1/2] Fix InstanceStaging success reentry assertion crash Signed-off-by: abhicommands <114682464+abhicommands@users.noreply.github.com> (cherry picked from commit 68f98491d5f2cfb81e931b1600a26ff890270d67) --- launcher/InstanceList.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/launcher/InstanceList.cpp b/launcher/InstanceList.cpp index 68681a9bb..98b420c31 100644 --- a/launcher/InstanceList.cpp +++ b/launcher/InstanceList.cpp @@ -928,6 +928,7 @@ class InstanceStaging : public Task { connect(child, &Task::progress, this, &InstanceStaging::setProgress); connect(child, &Task::stepProgress, this, &InstanceStaging::propagateStepProgress); connect(&m_backoffTimer, &QTimer::timeout, this, &InstanceStaging::childSucceeded); + m_backoffTimer.setSingleShot(true); } virtual ~InstanceStaging() {} @@ -959,13 +960,17 @@ class InstanceStaging : public Task { private slots: void childSucceeded() { + if (!isRunning()) + return; unsigned sleepTime = backoff(); if (m_parent->commitStagedInstance(m_stagingPath, *m_child.get(), m_child->group(), *m_child.get())) { + m_backoffTimer.stop(); emitSucceeded(); return; } // we actually failed, retry? if (sleepTime == maxBackoff) { + m_backoffTimer.stop(); emitFailed(tr("Failed to commit instance, even after multiple retries. It is being blocked by something.")); return; } @@ -974,12 +979,14 @@ class InstanceStaging : public Task { } void childFailed(const QString& reason) { + m_backoffTimer.stop(); m_parent->destroyStagingPath(m_stagingPath); emitFailed(reason); } void childAborted() { + m_backoffTimer.stop(); m_parent->destroyStagingPath(m_stagingPath); emitAborted(); } From 92d305f345a2ec02647c634b9bec61e7cbaca498 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 17 Feb 2026 21:37:55 +0200 Subject: [PATCH 2/2] add back missing step Signed-off-by: Trial97 --- launcher/minecraft/auth/steps/EntitlementsStep.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/launcher/minecraft/auth/steps/EntitlementsStep.cpp b/launcher/minecraft/auth/steps/EntitlementsStep.cpp index bc1915880..35a7de66f 100644 --- a/launcher/minecraft/auth/steps/EntitlementsStep.cpp +++ b/launcher/minecraft/auth/steps/EntitlementsStep.cpp @@ -32,6 +32,7 @@ void EntitlementsStep::perform() { "Authorization", QString("Bearer %1").arg(m_data->yggdrasilToken.token).toUtf8() } }; m_response.reset(new QByteArray()); + m_request = Net::Download::makeByteArray(url, m_response.get()); m_request->addHeaderProxy(std::make_unique(headers)); m_request->enableAutoRetry(true);