diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp index 22fe63d4..752aedb0 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp @@ -1490,9 +1490,12 @@ TimelineModel::redactEvent(const QString &id, const QString &reason) [this, id, reason](const mtx::responses::EventId &, mtx::http::RequestErr err) { if (err) { if (err->status_code == 429 && err->matrix_error.retry_after.count() != 0) { - QTimer::singleShot(err->matrix_error.retry_after, this, [this, id, reason]() { - this->redactEvent(id, reason); - }); + ChatPage::instance()->callFunctionOnGuiThread( + [this, id, reason, interval = err->matrix_error.retry_after] { + QTimer::singleShot(interval * 2, this, [this, id, reason]() { + this->redactEvent(id, reason); + }); + }); return; } emit redactionFailed(tr("Message redaction failed: %1")