nonetype object is not subscriptable

Когда пользователь моего телеграмм бота прикрепляет фото в сжатом виде - всё работает хорошо. Но если отправляет не сжатое изображение или документ вместо фото - бот крашится с ошибкой: nonetype object is not subscriptable.

Подскажите пожалуйста, как заставить бота игнорировать проблему и переходить к следующей функции или как убрать ошибку. Буду очень благодарен за конкретный пример кода, так как у меня очень плохое знание языка. Собственно говоря, я тут как раз и учусь. Спасибо)

@bot.message_handler(content_types=['photo'])
def get_user_pics(message):
if message.text == '/done':
    photodone = bot.send_message(message.chat.id,
                                 'Вы отказались от загрузки документов')
    bot.register_next_step_handler(photodone, receipt)
    process_messages()
    return
elif message.photo[-1].file_id not in photo_list:
    photo_list.append(message.photo[-1].file_id)
send = bot.send_message(message.from_user.id, "Добавьте следующее фото или нажмите /done")
bot.register_next_step_handler(send, get_user_pics)

return

Ответы (1 шт):

Автор решения: Namerek

Нашел в представленном коде одно место, которое может вызывать такую ошибку. message.photo[-1].file_id not in photo_list

@bot.message_handler(content_types=['photo'])
def get_user_pics(message):
if message.text == '/done':
    photodone = bot.send_message(message.chat.id,
                                 'Вы отказались от загрузки документов')
    bot.register_next_step_handler(photodone, receipt)
    process_messages()
    
elif message.photo and message.photo[-1].file_id not in photo_list:
#     ^^^ Вот тут можно доп проверку включить
    photo_list.append(message.photo[-1].file_id)
    send = bot.send_message(message.from_user.id, "Добавьте следующее фото или нажмите /done")
    bot.register_next_step_handler(send, get_user_pics)

Убрал оба ретурна ибо нах не нужны здесь и включил окочание скрипта в блок elif

→ Ссылка