diff --git a/src/lib/gramjs/client/TelegramClient.ts b/src/lib/gramjs/client/TelegramClient.ts index 36334d979..1d47536b2 100644 --- a/src/lib/gramjs/client/TelegramClient.ts +++ b/src/lib/gramjs/client/TelegramClient.ts @@ -335,6 +335,7 @@ class TelegramClient { } this.session.setAuthKey(this._sender.authKey); + // `_initWith` is used to announce our API layer to the server await this._sender.send(this._initWith( new Api.help.GetConfig(), )); @@ -686,7 +687,11 @@ class TelegramClient { ): Promise { const i = index || 0; - if (!this._exportedSenderPromises[dcId]) this._exportedSenderPromises[dcId] = {}; + let shouldAnnounceLayer = false; + if (!this._exportedSenderPromises[dcId]) { + this._exportedSenderPromises[dcId] = {}; + shouldAnnounceLayer = true; + } if (!this._exportedSenderRefCounter[dcId]) this._exportedSenderRefCounter[dcId] = {}; if (!this._exportedSenderPromises[dcId][i] || shouldReconnect) { @@ -730,6 +735,11 @@ class TelegramClient { this._exportedSenderReleaseTimeouts[dcId][i] = undefined; } + if (shouldAnnounceLayer) { + // Dummy request to let DC know about our API layer + sender.send(this._initWith(new Api.help.GetConfig())); + } + return sender; }