Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Telegram bot: GetUpdates Conflict

I have created the test Telegram bot console app using sample from this link https://github.com/TelegramBots/Telegram.Bot.Examples

There is my main

public static async Task Main()
{
    ServicePointManager.Expect100Continue = true;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    Bot = new TelegramBotClient(Configuration.BotToken);
    var me = await Bot.GetMeAsync();
    Console.Title = me.Username;

    var cts = new CancellationTokenSource();

    // StartReceiving does not block the caller thread. Receiving is done on the ThreadPool.
    Console.WriteLine($"Bot.Timeout= {Bot.Timeout}");

    //Bot.Timeout = TimeSpan.FromMilliseconds(30000);
    Bot.StartReceiving(
        new DefaultUpdateHandler(HandleUpdateAsync, HandleErrorAsync),
        cts.Token
    );

    Console.WriteLine($"Start listening for @{me.Username}");

    Console.ReadLine();

    // Send cancellation request to stop bot
    cts.Cancel();
}

I run it on Windows 10 - it works fine. But when I run it on the Windows 7 machine I receive the exception:

Bot.Timeout= 00:01:40 Start listening for @my123_bot HandleErrorAsync Telegram.Bot.Exceptions.ApiRequestException: Conflict: terminat ed by other getUpdates request; make sure that only one bot instance is running at Telegram.Bot.TelegramBotClient.d__541.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at Telegram.Bot.TelegramBotClientPollingExtensions.<ReceiveAsync>d__3.MoveNex t() HandleErrorAsync Telegram.Bot.Exceptions.ApiRequestException: Conflict: terminat ed by other getUpdates request; make sure that only one bot instance is running at Telegram.Bot.TelegramBotClient.<MakeRequestAsync>d__541.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at Telegram.Bot.TelegramBotClientPollingExtensions.d__3.MoveNex t()

What is the reason and how to fix it?

like image 796
ZedZip Avatar asked Nov 16 '25 22:11

ZedZip


1 Answers

As described in the comments;

: terminat ed by other getUpdates request; make sure that only one bot instance is running

Indicates that getUpdates() is being called at the same time.

To prevent this, either stop the other bots, or create a bot that will receive a web-hook HTTP POST request on update.

You should ensure that each message is handled by the bot(s) before you tell Telegram the message has been seen by the getUpdate() offset param.

like image 182
0stone0 Avatar answered Nov 18 '25 10:11

0stone0



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!