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()
1.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__54
— 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?
3
Answers
As described in the comments;
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.I was able to solve this problem by revoking and updating bot token. This worked because I think it stopped all the bot instances that were using the old token.
I solved this problem with rebooting my PC. I guess problem appears because the processes we cant see and rebooting just stops them down