diff --git a/TLSharp.Core/TelegramClient.cs b/TLSharp.Core/TelegramClient.cs index 825f9a7..ace058e 100644 --- a/TLSharp.Core/TelegramClient.cs +++ b/TLSharp.Core/TelegramClient.cs @@ -165,9 +165,23 @@ namespace TLSharp.Core if (String.IsNullOrWhiteSpace(code)) throw new ArgumentNullException(nameof(code)); - var request = new TLRequestSignIn() { phone_number = phoneNumber, phone_code_hash = phoneCodeHash, phone_code = code }; - await _sender.Send(request); - await _sender.Receive(request); + var request = new TLRequestSignIn() { phone_number = phoneNumber, phone_code_hash = phoneCodeHash, phone_code = code }; + + var completed = false; + + while (!completed) + { + try + { + await _sender.Send(request); + await _sender.Receive(request); + completed = true; + } + catch (PhoneMigrationException e) + { + await ReconnectToDcAsync(e.DC); + } + } OnUserAuthenticated(((TLUser)request.Response.user));