1) dpy не заброшен
2) у вас обычная команда, а не слеш
3) ошибка не относится к тому коду что вы прислали (там нет interaction)
4) ошибка четко говорит в чем проблема, переведите ее
Можете реализовать двумя способами
1) Изучить язык, выбрать библиотеки, ознакомиться с документацией, сесть и написать
2) Пойти на фриланс с описанием задачи
Для начала если это discord_components, а по декоратору похоже на него - удаляйте.
Далее идете на гитхаб или сайт используемой библиотеки, там обязательно будет папка examples в которой множество примеров как пользоваться библиотекой, в том числе как пользоваться всеми компонентами
Но вообще для того чтобы это было наглядно для человека логичнее сделать роль без прав к голосу ("Заключенный", "Заблокированный" и т д) и по команде выдавать эту роль. Для этого смотреть в документации на add_roles
Потому что он работает с переменной users, которая определяется в самом начале. Любая IDE вам выдаст предупреждение 'Shadows name users from outer scope' на таком коде
Вам нужно считывать данные внутри команды rank, но в целом лучше вообще не городить такой велосипед из костылей. Или разберитесь как пользоваться полноценной БД или используйте готовых ботов с экономикой, на json далеко не уедешь.
Не знаю зачем вы прислали код события об ошибке вместо кода проверки. Видимо нам надо угадывать как у вас устроена проверка и почему она не работает.
Что касается обработки ошибок в слеш командах событие on_slash_command_error