From d9d45ef3035aa4f1247dc1acb35b77e6aa634582 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 26 Dec 2018 21:01:46 +0300 Subject: [PATCH] Support WORKER_BUSY_TOO_LONG_RETRY error. GitOrigin-RevId: 44e4d36d91a44e21f679eaefac90c436a35079f2 --- td/telegram/net/NetQueryDelayer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/td/telegram/net/NetQueryDelayer.cpp b/td/telegram/net/NetQueryDelayer.cpp index 172d226e9..7f758a861 100644 --- a/td/telegram/net/NetQueryDelayer.cpp +++ b/td/telegram/net/NetQueryDelayer.cpp @@ -23,8 +23,13 @@ void NetQueryDelayer::delay(NetQueryPtr query) { CHECK(query->is_error()); auto code = query->error().code(); double timeout = 0; - if (code < 0 || code == 500) { + if (code < 0) { // skip + } else if (code == 500) { + auto msg = query->error().message(); + if (msg == "WORKER_BUSY_TOO_LONG_RETRY") { + timeout = 1; // it is dangerous to resend query without timeout, so use 1 + } } else if (code == 420) { auto msg = query->error().message(); for (auto prefix : {Slice("FLOOD_WAIT_"), Slice("2FA_CONFIRM_WAIT_"), Slice("TAKEOUT_INIT_DELAY_")}) {