diff --git a/Telegram/SourceFiles/api/api_user_names.cpp b/Telegram/SourceFiles/api/api_user_names.cpp index 187fc0b4db..5b6a6f5289 100644 --- a/Telegram/SourceFiles/api/api_user_names.cpp +++ b/Telegram/SourceFiles/api/api_user_names.cpp @@ -83,6 +83,8 @@ rpl::producer Usernames::loadUsernames( consumer.put_next({}); consumer.put_done(); }); + }).fail([=] { + consumer.put_done(); }).send(); }; const auto requestChannel = [&](const MTPInputChannel &data) { @@ -103,6 +105,8 @@ rpl::producer Usernames::loadUsernames( consumer.put_done(); }); }); + }).fail([=] { + consumer.put_done(); }).send(); }; if (peer->isSelf()) { @@ -261,9 +265,11 @@ void Usernames::requestToCache(not_null peer) { const auto lifetime = std::make_shared(); *lifetime = loadUsernames( peer - ) | rpl::on_next([=, id = peer->id](Data::Usernames usernames) { + ) | rpl::on_next_done([=, id = peer->id](Data::Usernames usernames) { _tinyCache = std::make_pair(id, std::move(usernames)); lifetime->destroy(); + }, [=] { + lifetime->destroy(); }); }