يحصل بوت Telegram على 409 Conflict لأحد سببين: إما أن نسخة أخرى من البوت تطلب الرسائل من Telegram بالرمز نفسه، أو أن webhook معيّنًا على البوت بينما يستخدم كودك الاستطلاع (polling). يسمح Telegram لواحد منهما فقط باستقبال رسائل البوت. اقرأ نهاية السطر في Console لتعرف أيهما، ثم:
terminated by other getUpdates request: أوقف النسخة الأخرى من بوتك (على حاسوبك أو استضافتك القديمة أو سيرفر آخر)، ثم أعد تشغيل البوت هنا.- لا تجد النسخة الأخرى؟ في @BotFather أرسل
/mybots، واختر بوتك، ثم API Token، وألغِ الرمز، والصق الرمز الجديد في صفحة البوت، قسم Telegram. can't use getUpdates method while webhook is active: اضغط إزالة الـ webhook في شريط التنبيه (أو إزالة الـ webhook في قسم Telegram)، ثم أعد تشغيل البوت.
في بوت Telegram على PlayNHost تقرأ اللوحة ما في Console نيابةً عنك وتعرض فوقه شريط تنبيه فيه السبب والزر الذي يصلحه. تقول الشارة في نظرة عامة لا يستقبل الرسائل.
409: نسخة أخرى من بوتك تعمل
نص Telegram داخل خطأ مكتبتك:
Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
هكذا يظهر مع كل مكتبة:
| المكتبة | سطر Console |
|---|---|
| python-telegram-bot | telegram.error.Conflict: Conflict: terminated by other getUpdates request; ... |
| aiogram 3 | Failed to fetch updates - TelegramConflictError: Telegram server says - Conflict: terminated by other getUpdates request; ... |
| pyTelegramBotAPI | A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; ... |
| grammY | GrammyError: Call to 'getUpdates' failed! (409: Conflict: terminated by other getUpdates request; ...) |
| Telegraf | TelegramError: 409: Conflict: terminated by other getUpdates request; ... |
يسلّم Telegram الرسائل إلى نسخة واحدة في كل مرة، فتزيح النسختان إحداهما الأخرى باستمرار. تواصل python-telegram-bot وaiogram وpyTelegramBotAPI إعادة المحاولة: يبدو بوتك شغّالًا هنا، لكنه يفوّت رسائل أو لا يرد على شيء. أما grammY وTelegraf فتتوقفان مع الخطأ.
يقول شريط التنبيه بوتك يعمل في مكان آخر أيضًا. للإصلاح:
- ابحث عن النسخة الأخرى وأوقفها: نافذة طرفية أو سكربت على حاسوبك، أو الاستضافة القديمة التي انتقلت منها (مهمة تعمل دائمًا أو نشر أو خدمة)، أو سيرفر ثانٍ يشغّل الكود نفسه.
- اضغط إعادة التشغيل هنا وراقب Console. يتوقف الخطأ عندما يصبح بوتك النسخة الوحيدة.
- إذا لم تجد النسخة الأخرى، أنشئ رمزًا جديدًا ليتوقف القديم عن العمل في كل مكان: في @BotFather أرسل
/mybots، واختر بوتك، ثم API Token، ثم Revoke current token. - في صفحة البوت، قسم Telegram، اضغط استبدال الرمز، والصق الرمز الجديد، واضغط حفظ الرمز. تقول اللوحة يواصل البوت استخدام الرمز القديم حتى يُعاد تشغيله.: اضغط إعادة التشغيل الآن.
يفتح زر استبدال الرمز في شريط التنبيه القسم نفسه. يتوقف الرمز القديم عن العمل فورًا، فلا تستطيع أي نسخة نسيتها أن تقرأ رسائل بوتك بعد الآن.

409: webhook معيّن بينما يستخدم بوتك الاستطلاع
نص Telegram:
Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first
يخبر الـ webhook خوادم Telegram بأن ترسل رسائل بوتك إلى عنوان ويب. وما دام أحدها معيّنًا، يحصل الكود الذي يستخدم الاستطلاع (أي يسأل Telegram عن الرسائل الجديدة) على هذا الخطأ. وغالبًا يبقى من استضافة قديمة كانت تشغّل البوت عبر webhook، أو من كود استدعى setWebhook ذات مرة. على PlayNHost يستخدم بوتك الاستطلاع: تحتاج webhooks إلى عنوان HTTPS عام، ولا تتضمنه هذه الباقات حاليًا.
يقول شريط التنبيه تم تعيين webhook لبوتك. ويعرض قسم Telegram في صفحة البوت أيضًا تم تعيين webhook لهذا البوت مع العنوان الذي يشير إليه. للإصلاح:

- اضغط إزالة الـ webhook في شريط التنبيه، أو إزالة الـ webhook في قسم Telegram.
- أكّد في إزالة الـ webhook؟ بالضغط على إزالة الـ webhook. يتوقف Telegram عن إرسال رسائل بوتك إلى ذلك العنوان ويحتفظ بالرسائل المنتظرة، فيجلبها بوتك هنا.
- أعد تشغيل البوت.
إذا كانت نسخة من بوتك لا تزال تعمل في مكان آخر على ذلك الـ webhook، فتتوقف عن استقبال الرسائل عندما تزيله. أوقف تلك النسخة أيضًا، وإلا فقد تعيّن الـ webhook من جديد عند إعادة تشغيلها.
تزيل python-telegram-bot (run_polling()) وgrammY (bot.start()) الـ webhook بنفسيهما عند بدء الاستطلاع. أما aiogram فلا تفعل: تواصل إعادة المحاولة عند 409. استخدم الزر، أو أضف سطرًا واحدًا قبل الاستطلاع:
await bot.delete_webhook()
await dp.start_polling(bot)
كودك يحاول تعيين webhook
إذا استدعى كودك setWebhook، يرفضه Telegram بـ Bad Request: bad webhook: ... ويقول شريط التنبيه كودك يحاول تعيين webhook. استبدل بدء الـ webhook باستدعاء الاستطلاع في مكتبتك: run_polling() في python-telegram-bot، أو start_polling() في aiogram، أو bot.start() في grammY، أو launch() في Telegraf. يأخذك زر فتح Files في شريط التنبيه إلى كودك. أمثلة: كيف تنقل بوت Telegram إلى PlayNHost.
401 Unauthorized: الرمز مرفوض
يرد Telegram بـ 401 Unauthorized عندما يُلغى الرمز في @BotFather أو يُنسخ بشكل خاطئ. أمثلة:
telegram.error.InvalidToken
TelegramUnauthorizedError: Telegram server says - Unauthorized
GrammyError: Call to 'getMe' failed! (401: Unauthorized)
TelegramError: 401: Unauthorized
تطبع بوتاتنا التجريبية سطرًا واضحًا بدلًا من ذلك:
Telegram did not accept the bot token. Paste the current one from @BotFather on the Bot page, then restart.
يقول شريط التنبيه لم يقبل Telegram رمز بوتك ويعرض قسم Telegram لم يقبله Telegram. في @BotFather أرسل /mybots، واختر بوتك، ثم API Token؛ وفي القسم اضغط استبدال الرمز، والصقه، واضغط حفظ الرمز، ثم إعادة التشغيل الآن. تواصل aiogram وpyTelegramBotAPI إعادة المحاولة مع رمز مرفوض، فلولا شريط التنبيه لبدا البوت شغّالًا.
الرمز الذي يرفضه Telegram لا يُحفظ أبدًا. إذا لصقت رمز Discord، تقول اللوحة هذا رمز بوت Discord.: انسخ الرمز الذي أعطاك إياه @BotFather.
429 Too Many Requests: الحد من الإغراق (flood control)
Too Many Requests: retry after 22
telegram.error.RetryAfter: Flood control exceeded. Retry in 39.0 seconds
أرسل بوتك رسائل أكثر مما يسمح به Telegram في وقت قصير، فيطلب Telegram منه أن ينتظر عدد الثواني الظاهر. تنتظر المكتبات وتتابع، فلا يوقف هذا البوت أبدًا. شريط التنبيه Telegram يبطّئ بوتك تحذير فقط. أرسل رسائل أقل في المرة الواحدة: يطلب Telegram نحو رسالة واحدة في الثانية في المحادثة الواحدة و20 رسالة في الدقيقة في المجموعة.
تعذّر على بوتك الوصول إلى Telegram
يعني هذا الشريط أن طلبًا واحدًا من بوتك إلى api.telegram.org فشل. تعيد معظم المكتبات المحاولة من تلقاء نفسها، فلا داعي للقلق من سطر واحد. إذا بقي بوتك صامتًا فأعد تشغيله؛ وإذا استمر ذلك فافتح تذكرة دعم.
مفيد أن تعرف
- عندما يتوقف البوت بسبب رمز مرفوض أو نسخة أخرى أو webhook، يذكر بريد التوقف الذي نرسله السبب.
- المزيد عن Console: كيف تقرأ Console وسجلات بوتك. للإعداد من البداية: كيف تستضيف بوت Telegram.



