У меня есть очень простой скрипт, который выводит сообщение с кнопкой с командой? Place
При нажатии на эту кнопку бот отвечает привет пользователю, который нажал ее.
Если кнопка не используется в течение > примерно 3 минут, она начинает возвращать сообщение «Ошибка взаимодействия».

После этого кнопка становится бесполезной. Я предполагаю, что есть какой-то внутренний тайм-аут, который я не могу найти в документах. Кнопка делает то же самое, используя discord.py (2.0) или pycord. В консоль ничего не попадает. Как будто нажатие кнопки не подхватывается.
Очень редко кнопка снова начинает работать, и в консоль попадает множество этих ошибок:
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
Ignoring exception in view <View timeout=180.0 children=1> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='click me' emoji=None row=None>:
Я предполагаю, что тайм-аут = 180 является причиной этой проблемы, но кто-нибудь знает, как остановить этот тайм-аут и почему это происходит? Я не вижу в документах ничего о кнопках дискорда, которые можно использовать только в течение 3 минут.
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix="?", intents=intents)
embed1=discord.Embed(title="Test", description = f"TESTING",color=0xffffff)
print("bot connected")
@ bot.command(name='place')
async def hello(ctx):
view = discord.ui.View()
buttonSign = discord.ui.Button(label = "click me", style= discord.ButtonStyle.green)
async def buttonSign_callback(interaction):
userName = interaction.user.id
embedText = f"test test test"
embed=discord.Embed(title="Test", description = embedText,color=0xffffff)
await interaction.response.send_message(f"Hi <@{userName}>")
buttonSign.callback = buttonSign_callback
view.add_item(item=buttonSign)
await ctx.send(embed = embed1,view = view)
bot.run(TOKEN)
1 ответ
Лучший ответ
Объяснение
По умолчанию View в discord.py 2.0 имеют тайм-аут 180 секунд (3 минуты). Вы можете исправить эту ошибку, передав None в качестве времени ожидания при создании представления.
Код
@bot.command(name='place')
async def hello(ctx):
view = discord.ui.View(timeout=None)
Ссылки
discord.ui.View.timeout
4
TheFungusAmongUs
20 Май 2022 в 03:12
Create an account to follow your favorite communities and start taking part in conversations.
r/Discord_Bots
I get it with every single interactable button on my bot (they all work). Defer works but it’s not ideal with the annoying extra message sent.
level 1
if you are getting an error message, something is not working properly.
you should try to understand the error message (that you haven’t posted), and figure out what’s wrong
level 2
It’s the message you get when interacting with a discord component button. «This interaction failed» happens every single time on multiple buttons despite everything working as expected.
Which probably means it’s expecting a special response i haven’t given it to signal the interaction has worked, I’m not sure what that is. Deferring works to stop the message though.
level 1
Does your code receive it? The error appears if you do not respond to the interaction within 3 seconds. Defer does this job, for example. Others include stuff like interaction.response.pong or interaction.response.edit_message do these too.
Also note that discord-py is no longer maintained
level 2
Response isn’t a valid attribute. Respond is, but respond doesn’t have the attribute pong or edit_message.
Defer does work, but i don’t want to use it because of the message it sends.
level 1
Having the same issue. My buttons edit an embed and it does what I want it to do (edit the embed page) but every time I click one of the buttons, I get the «this interaction failed»
About Community
![]()
Non-official subreddit for Discord bot developement
Дискорд – популярная бесплатная площадка для общения между пользователями. Программу используют те, кто играет в различные игры – дискорд позволяет корректировать действия и общаться в режиме реального времени, что очень удобно. Администрация на тематических серверах может устанавливать специальные музыкальные боты для трансляции музыки. По ряду причин, такие боты могут лагать и плохо работать на сервере. Чтобы наладить их функционирование, следует выполнить несколько простых действий.

Проблема с местоположением сервера
Проблема трансляции музыки с помощью бота в Дискорде связана с местоположением. По ряду причин из – за этого могут не транслироваться музыкальные композиции, или же болт вовсе перестанет работать. Исправляется это изменением местоположение сервера.
Если лагает музыкальный бот в дискорде, то причиной для этого может стать то, что программа автоматически выбирает точку подключения при создании сервера. Если она подключилась к той региональной точке, с которой создан сервер, то программа будет нормально функционировать. Но из – за возникающих сбоев программа может подключиться к другой региональной точке, из – за чего возникнет сильная задержка, из – за которой невозможно нормально смотреть видео или слушать музыку. Соответственно, это вредит и работе бота.
Сделать это можно, следуя этой инструкции:
- Войти в программу Дискорд.
- Открыть вкладку «Параметры».
- Выбрать «Настройки сервера».
- Перейти в «Обзор».
- Откроется окно со значок с флагом. Нужно выбрать функцию «Изменить».
- Откроется окно «Выберите регшион сервера». Пользователю придется выбрать из списка регион, где он находится.
- После этого нужно сохранить изменения.

Выполнив эти действия, у пользователя изменится местоположение сервера. Если местоположение изначально выбрано правильно, но музыкальный бот отказывается работать, некоторые пользователи советуют изменить местоположение. К примеру, сервер привязан к Росии по умолчанию, но его местоположение нужно изменить на США. После этого бот будет нормально функционировать.
Лагает сам бот — пробуем переустановить
Иногда проблема сбоев в работе бота заключается в его некорректной работе. Это можно исправить, переустанови музыкального бота.
Если лагает бот с музыкой в дискорде, нужно:
- Войти в приложение, перейти на сервер.
- Найти нужный бот в списке.
- Щелкнув по нему правой кнопкой мыши и выбрать «Удалить».
- Нужно выбрать новый бот, и установить его.
- Установив бота на сервер он будет показан как новый пользователь. Администратору потребуется выдать роль роботу, если та не определилась автоматически.
- Ввести команду (для каждого бота она своя) для прослушивания музыки.

Если бот не играет музыку, то его перестановка может решить проблемы с зависанием.
Лагает программа Дискорд — ждем окончания сбоя
Иногда причиной сбоя в работе бота является проблема в самом Дискорде. Причиной для появления сбоя может стать низкая скорость Интернет – соединения или же неверные настройки самого Дискорда.
Что делать в такой если бот не проигрывает музыку в Дискорде:
- Подождать или перезапустить программу. В большинстве случаев, сбой в Дискорде бывает временным.
- Проверить Интернет – соединение. Из – за никой скорости могут возникать сбои в работе.
- Переустановить Дискорд. Если же лаги не исчезают, а бот отказывается нормально работать, должна помочь перестановка программы.
- В некоторых случаях рекомендуется проверить, обновлены ли драйверы звуковой карты.
Исправить зависание Дискорда можно в кратчайшие сроки. Иногда даже не требуется ничего делать, а просто подождать, когда программа начнет нормально функционировать.
Дискорд – удобная платформа для общения, отличающаяся высокой оптимизацией. Однако, без сбоев и лагов в работе программы не удается обойтись. К счастью, устранить проблему с зависанием музыкального бота можно за считанные минуты.