telebot
использует threading
, функции с декоратором
message_handler
вызываются из потока на его тредпуле. Курсор
sqlite3
, созданный в конструкторе
db
из главного потока, не может быть использован в вызове
send_welcome
->
user_register
->
db.query
из другого потока.
Перенесите создание курсора
cur = self.con.cursor()
в метод
query
и сделайте его локальной переменной.
Или кешируйте создаваемые курсоры в
threading.local, если производительность в этой точке критична (не думаю, что это так, исходя из задач бота).