Тема: Проблема в handler при написанні tg бота для зберігання фольклору
Пишу бота на telebot, який зможе зберігати пісні від користувача в sqlite3 бд та видавати інформацію про пісні. Зараз готова частина з додаванням пісень. Тобто користувач може додати пісню. Після чого вся інфа додається до бд. Вже трохи довго застиг на реалізації пошуку пісні за назвою.
Вище ще є код, який викликає process_song_name, після введення назви. Далі йде пошук в бд і результати збігів виводяться в кнопках. 
Далі починаються проблеми... При натисканні на кнопку з піснею має посилатися callback_data, яку обробляє handler. І виконуватись функція, яка повертає все про пісню. Але чомусь не працює. Буду вдячний, якщо допоможете виправити помилку!
@bot.message_handler(func=lambda message: True)
def process_song_name(message):
    # Отримати назву 
    search_name = message.text
    conn = sqlite3.connect('new_songs.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM songs WHERE title LIKE ?', ('%' + search_name + '%',))
    search_results = cursor.fetchall()
    conn.close()
    # відобразити результати у кнопках
    if not search_results:
        bot.send_message(message.chat.id, f"Не знайдено пісні: '{search_name}'.")
    else:
        bot.send_message(message.chat.id, "Результати пошуку:")
        for result in search_results:
            # створення кнопок з кожним результатом
            button_text = f"{result[3]} - {result[6]}"
            callback_data = f"song_info-{result[0]}"  
            markup = types.InlineKeyboardMarkup()
            markup.add(types.InlineKeyboardButton(text=button_text, callback_data=callback_data))
            bot.send_message(message.chat.id, f"Назва: {result[3]}, Регіон: {result[6]}", reply_markup=markup)
# Хендлер для виведення інфи про вибрану пісню, який не працює(
@bot.callback_query_handler(func=lambda call: call.data and call.data.startswith("song_info-"))
def handle_song_info_callback(call):
    print("Callback received:", call.data)
    #не виводиться в консоль(
    song_id = int(call.data.split('-')[1])
   
    conn = sqlite3.connect('new_songs.db')
    cursor = conn.cursor()
    
    cursor.execute('SELECT * FROM songs WHERE id = ?', (song_id,))
    song_info = cursor.fetchone()
    conn.close()
    
    if song_info:
        info_message = f'Title: {song_info[3]}\nРегіон: {song_info[6]}\Додано: {song_info[1]}\Текст: {song_info[5]}'
        bot.send_message(call.message.chat.id, info_message)
    else:
        bot.send_message(call.message.chat.id, "Помилка при отримані даних.")