diff --git a/Telegram/SourceFiles/data/components/sponsored_messages.cpp b/Telegram/SourceFiles/data/components/sponsored_messages.cpp
index e60c0a1d3..4cb54fc7e 100644
--- a/Telegram/SourceFiles/data/components/sponsored_messages.cpp
+++ b/Telegram/SourceFiles/data/components/sponsored_messages.cpp
@@ -37,9 +37,20 @@ SponsoredMessages::SponsoredMessages(not_null<Main::Session*> session)
 }
 
 SponsoredMessages::~SponsoredMessages() {
-	for (const auto &request : _requests) {
+	Expects(_data.empty());
+	Expects(_requests.empty());
+	Expects(_viewRequests.empty());
+}
+
+void SponsoredMessages::clear() {
+	_lifetime.destroy();
+	for (const auto &request : base::take(_requests)) {
 		_session->api().request(request.second.requestId).cancel();
 	}
+	for (const auto &request : base::take(_viewRequests)) {
+		_session->api().request(request.second.requestId).cancel();
+	}
+	base::take(_data);
 }
 
 void SponsoredMessages::clearOldRequests() {
diff --git a/Telegram/SourceFiles/data/components/sponsored_messages.h b/Telegram/SourceFiles/data/components/sponsored_messages.h
index 179dabf30..ca7edbdfe 100644
--- a/Telegram/SourceFiles/data/components/sponsored_messages.h
+++ b/Telegram/SourceFiles/data/components/sponsored_messages.h
@@ -80,8 +80,6 @@ public:
 	};
 	using RandomId = QByteArray;
 	explicit SponsoredMessages(not_null<Main::Session*> session);
-	SponsoredMessages(const SponsoredMessages &other) = delete;
-	SponsoredMessages &operator=(const SponsoredMessages &other) = delete;
 	~SponsoredMessages();
 
 	[[nodiscard]] bool canHaveFor(not_null<History*> history) const;
@@ -104,6 +102,8 @@ public:
 	[[nodiscard]] auto createReportCallback(const FullMsgId &fullId)
 	-> Fn<void(SponsoredReportResult::Id, Fn<void(SponsoredReportResult)>)>;
 
+	void clear();
+
 private:
 	using OwnedItem = std::unique_ptr<HistoryItem, HistoryItem::Destroyer>;
 	struct Entry {
diff --git a/Telegram/SourceFiles/data/data_session.cpp b/Telegram/SourceFiles/data/data_session.cpp
index f44c14bac..23f121443 100644
--- a/Telegram/SourceFiles/data/data_session.cpp
+++ b/Telegram/SourceFiles/data/data_session.cpp
@@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 #include "data/business/data_business_info.h"
 #include "data/business/data_shortcut_messages.h"
 #include "data/components/scheduled_messages.h"
+#include "data/components/sponsored_messages.h"
 #include "data/stickers/data_stickers.h"
 #include "data/notify/data_notify_settings.h"
 #include "data/data_bot_app.h"
@@ -396,6 +397,7 @@ void Session::clear() {
 	_histories->unloadAll();
 	_shortcutMessages = nullptr;
 	_session->scheduledMessages().clear();
+	_session->sponsoredMessages().clear();
 	_dependentMessages.clear();
 	base::take(_messages);
 	base::take(_nonChannelMessages);