An unknown exception or misconfiguration of the database connection seems to trigger cascading errors and as a result the bot becomes less responsive.
2020-09-07 21:39:53,608 - telegram.utils.promise - ERROR - An uncaught error was raised while running the promise
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
psycopg2.OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/promise.py", line 57, in run
self._result = self.pooled_function(*self.args, **self.kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/helper_funcs/chat_status.py", line 162, in is_not_admin
return func(bot, update, *args, **kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/locks.py", line 314, in rest_handler
and sql.is_restr_locked(chat.id, restriction)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/sql/locks_sql.py", line 199, in is_restr_locked
curr_restr = SESSION.query(Restrictions).get(str(chat_id))
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 959, in get
return self._get_impl(ident, loading.load_on_pk_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1069, in _get_impl
return db_load_fn(self, primary_key_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282, in load_on_pk_identity
return q.one()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3288, in one
ret = self.one_or_none()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3257, in one_or_none
ret = list(self)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3330, in __iter__
return self._execute_and_instances(context)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3355, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
return meth(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
distilled_params,
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
e, statement, parameters, cursor, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
raise value.with_traceback(tb)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[SQL: SELECT restrictions.chat_id AS restrictions_chat_id, restrictions.messages AS restrictions_messages, restrictions.media AS restrictions_media, restrictions.other AS restrictions_other, restrictions.preview AS restrictions_preview
FROM restrictions
WHERE restrictions.chat_id = %(param_1)s]
[parameters: {'param_1': '-1001253839516'}]
(Background on this error at: http://sqlalche.me/e/e3q8)
2020-09-07 22:55:27,977 - telegram.utils.promise - ERROR - An uncaught error was raised while running the promise
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
psycopg2.OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/promise.py", line 57, in run
self._result = self.pooled_function(*self.args, **self.kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/helper_funcs/chat_status.py", line 162, in is_not_admin
return func(bot, update, *args, **kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/locks.py", line 314, in rest_handler
and sql.is_restr_locked(chat.id, restriction)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/sql/locks_sql.py", line 199, in is_restr_locked
curr_restr = SESSION.query(Restrictions).get(str(chat_id))
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 959, in get
return self._get_impl(ident, loading.load_on_pk_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1069, in _get_impl
return db_load_fn(self, primary_key_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282, in load_on_pk_identity
return q.one()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3288, in one
ret = self.one_or_none()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3257, in one_or_none
ret = list(self)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3330, in __iter__
return self._execute_and_instances(context)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3355, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
return meth(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
distilled_params,
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
e, statement, parameters, cursor, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
raise value.with_traceback(tb)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[SQL: SELECT restrictions.chat_id AS restrictions_chat_id, restrictions.messages AS restrictions_messages, restrictions.media AS restrictions_media, restrictions.other AS restrictions_other, restrictions.preview AS restrictions_preview
FROM restrictions
WHERE restrictions.chat_id = %(param_1)s]
[parameters: {'param_1': '-1001340370511'}]
(Background on this error at: http://sqlalche.me/e/e3q8)
2020-09-07 23:05:16,963 - tg_bot - WARNING - Expecting value: line 1 column 1 (char 0)
2020-09-07 23:07:40,118 - telegram.utils.promise - ERROR - An uncaught error was raised while running the promise
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1177, in _execute_context
conn = self._revalidate_connection()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 463, in _revalidate_connection
"Can't reconnect until invalid "
sqlalchemy.exc.InvalidRequestError: Can't reconnect until invalid transaction is rolled back
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/promise.py", line 57, in run
self._result = self.pooled_function(*self.args, **self.kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/__main__.py", line 171, in start
IMPORTED["rules"].send_rules(update, args[0], from_pm=True)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/rules.py", line 38, in send_rules
rules = sql.get_rules(chat_id)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/sql/rules_sql.py", line 37, in get_rules
rules = SESSION.query(Rules).get(str(chat_id))
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 959, in get
return self._get_impl(ident, loading.load_on_pk_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1069, in _get_impl
return db_load_fn(self, primary_key_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282, in load_on_pk_identity
return q.one()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3288, in one
ret = self.one_or_none()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3257, in one_or_none
ret = list(self)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3330, in __iter__
return self._execute_and_instances(context)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3355, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
return meth(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
distilled_params,
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
e, util.text_type(statement), parameters, None, None
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
raise value.with_traceback(tb)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1177, in _execute_context
conn = self._revalidate_connection()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 463, in _revalidate_connection
"Can't reconnect until invalid "
sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back
[SQL: SELECT rules.chat_id AS rules_chat_id, rules.rules AS rules_rules
FROM rules
WHERE rules.chat_id = %(param_1)s]
[parameters: [{'%(139804747598984 param)s': '-1001340370511'}]]
2020-09-08 01:01:35,613 - tg_bot - ERROR - Exception in help buttons. help_next(0)
Traceback (most recent call last):
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/__main__.py", line 286, in help_button
query.message.delete()
File "/home/mat/.local/lib/python3.6/site-packages/telegram/message.py", line 816, in delete
chat_id=self.chat_id, message_id=self.message_id, *args, **kwargs)
File "/home/mat/.local/lib/python3.6/site-packages/telegram/bot.py", line 65, in decorator
result = func(self, *args, **kwargs)
File "/home/mat/.local/lib/python3.6/site-packages/telegram/bot.py", line 296, in delete_message
result = self._request.post(url, data, timeout=timeout)
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/request.py", line 309, in post
headers={'Content-Type': 'application/json'})
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/request.py", line 223, in _request_wrapper
raise BadRequest(message)
telegram.error.BadRequest: Message can't be deleted for everyone
2020-09-08 01:01:37,279 - telegram.utils.promise - ERROR - An uncaught error was raised while running the promise
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
psycopg2.OperationalError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/mat/.local/lib/python3.6/site-packages/telegram/utils/promise.py", line 57, in run
self._result = self.pooled_function(*self.args, **self.kwargs)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/__main__.py", line 171, in start
IMPORTED["rules"].send_rules(update, args[0], from_pm=True)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/rules.py", line 38, in send_rules
rules = sql.get_rules(chat_id)
File "/home/mat/Progetti/PYITA/python-italy-telegram-bot/tg_bot/modules/sql/rules_sql.py", line 37, in get_rules
rules = SESSION.query(Rules).get(str(chat_id))
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 959, in get
return self._get_impl(ident, loading.load_on_pk_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 1069, in _get_impl
return db_load_fn(self, primary_key_identity)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 282, in load_on_pk_identity
return q.one()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3288, in one
ret = self.one_or_none()
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3257, in one_or_none
ret = list(self)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3330, in __iter__
return self._execute_and_instances(context)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3355, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
return meth(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams, params)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
distilled_params,
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
e, statement, parameters, cursor, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 152, in reraise
raise value.with_traceback(tb)
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/home/mat/.local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[SQL: SELECT rules.chat_id AS rules_chat_id, rules.rules AS rules_rules
FROM rules
WHERE rules.chat_id = %(param_1)s]
[parameters: {'param_1': '-1001340370511'}]
(Background on this error at: http://sqlalche.me/e/e3q8)
^C2020-09-08 03:12:45,483 - telegram.ext.updater - INFO - Received signal 2 (SIGINT), stopping...
I would also like to add: the problem is solved by re-starting the bot. If the bot is not restarted after a long time then some commands no longer work, such as the chat unblock command.
An unknown exception or misconfiguration of the database connection seems to trigger cascading errors and as a result the bot becomes less responsive.