Failed to create session (failed to rollback)

720 views
Skip to first unread message

Alejandro Hirmas

unread,
Jul 5, 2021, 8:08:59 AM7/5/21
to oTree help & discussion
Hi everyone! 

I am trying to deploy my experiment, but when I deploy it in Heroku I get an error when creating the session (see below). I've tried many things, but nothing seems to work. 

Thank you in advance!


Failed to create session: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (psycopg2.errors.UndefinedColumn) column "trial_pay" of relation "EndPage_player" does not exist LINE 1: ...ayer" (id_in_group, _payoff, round_number, _role, trial_pay,... ^ [SQL: INSERT INTO "EndPage_player" (id_in_group, _payoff, round_number, _role, trial_pay, "Bonus", "TreeAmount", subsession_id, group_id, participant_id, session_id) VALUES (%(id_in_group)s, %(_payoff)s, %(round_number)s, %(_role)s, %(trial_pay)s, %(Bonus)s, %(TreeAmount)s, %(subsession_id)s, %(group_id)s, %(participant_id)s, %(session_id)s) RETURNING "EndPage_player".id] [parameters: {'id_in_group': 1, '_payoff': '0', 'round_number': 1, '_role': '', 'trial_pay': None, 'Bonus': None, 'TreeAmount': None, 'subsession_id': 7, 'group_id': 7, 'participant_id': 69, 'session_id': 36}] (Background on this error at: http://sqlalche.me/e/13/f405) (Background on this error at: http://sqlalche.me/e/13/7s2a)Traceback (most recent call last): File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context self.dialect.do_execute( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 609, in do_execute cursor.execute(statement, parameters) psycopg2.errors.UndefinedColumn: column "trial_pay" of relation "EndPage_player" does not exist LINE 1: ...ayer" (id_in_group, _payoff, round_number, _role, trial_pay,... ^ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/.heroku/python/lib/python3.9/site-packages/otree/session.py", line 408, in create_session dbq(Participant).filter_by(session=session).update( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 4063, in update update_op.exec_() File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1695, in exec_ self._do_pre() File "", line 1, in File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1741, in _do_pre session._autoflush() File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1633, in _autoflush util.raise_(e, with_traceback=sys.exc_info()[2]) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1622, in _autoflush self.flush() File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2540, in flush self._flush(objects) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2682, in _flush transaction.rollback(_capture_exception=True) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__ compat.raise_( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2642, in _flush flush_context.execute() File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute rec.execute(self) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute persistence.save_obj( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj _emit_insert_statements( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements result = cached_connections[connection].execute( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute return meth(self, multiparams, params) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement ret = self._execute_context( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context self._handle_dbapi_exception( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception util.raise_( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_ raise exception File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context self.dialect.do_execute( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 609, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (psycopg2.errors.UndefinedColumn) column "trial_pay" of relation "EndPage_player" does not exist LINE 1: ...ayer" (id_in_group, _payoff, round_number, _role, trial_pay,... ^ [SQL: INSERT INTO "EndPage_player" (id_in_group, _payoff, round_number, _role, trial_pay, "Bonus", "TreeAmount", subsession_id, group_id, participant_id, session_id) VALUES (%(id_in_group)s, %(_payoff)s, %(round_number)s, %(_role)s, %(trial_pay)s, %(Bonus)s, %(TreeAmount)s, %(subsession_id)s, %(group_id)s, %(participant_id)s, %(session_id)s) RETURNING "EndPage_player".id] [parameters: {'id_in_group': 1, '_payoff': '0', 'round_number': 1, '_role': '', 'trial_pay': None, 'Bonus': None, 'TreeAmount': None, 'subsession_id': 7, 'group_id': 7, 'participant_id': 69, 'session_id': 36}] (Background on this error at: http://sqlalche.me/e/13/f405) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/app/.heroku/python/lib/python3.9/site-packages/otree/session.py", line 442, in create_session_traceback_wrapper return create_session(**kwargs) File "/app/.heroku/python/lib/python3.9/site-packages/otree/session.py", line 431, in create_session db.delete(session) File "/app/.heroku/python/lib/python3.9/site-packages/otree/database.py", line 169, in delete return self._db.delete(obj) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2061, in delete self._delete_impl(state, instance, head=True) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2087, in _delete_impl cascade_states = list( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/mapper.py", line 3098, in cascade_iterator queue = deque( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1941, in cascade_iterator tuples = self._value_as_iterable( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/relationships.py", line 1921, in _value_as_iterable for o in impl.get_collection(state, dict_, x, passive=passive) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/dynamic.py", line 110, in get_collection history = self._get_collection_history(state, passive) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/dynamic.py", line 240, in _get_collection_history return CollectionHistory(self, state, apply_to=c) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/dynamic.py", line 405, in __init__ self.unchanged_items = util.OrderedIdentitySet(coll) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/util/_collections.py", line 713, in __init__ for o in iterable: File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3535, in __iter__ return self._execute_and_instances(context) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3556, in _execute_and_instances conn = self._get_bind_args( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3571, in _get_bind_args return fn( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 3550, in _connection_from_session conn = self.session.connection(**kw) File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1142, in connection return self._connection_for_bind( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1150, in _connection_for_bind return self.transaction._connection_for_bind( File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind self._assert_active() File "/app/.heroku/python/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 289, in _assert_active raise sa_exc.InvalidRequestError( sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (psycopg2.errors.UndefinedColumn) column "trial_pay" of relation "EndPage_player" does not exist LINE 1: ...ayer" (id_in_group, _payoff, round_number, _role, trial_pay,... ^ [SQL: INSERT INTO "EndPage_player" (id_in_group, _payoff, round_number, _role, trial_pay, "Bonus", "TreeAmount", subsession_id, group_id, participant_id, session_id) VALUES (%(id_in_group)s, %(_payoff)s, %(round_number)s, %(_role)s, %(trial_pay)s, %(Bonus)s, %(TreeAmount)s, %(subsession_id)s, %(group_id)s, %(participant_id)s, %(session_id)s) RETURNING "EndPage_player".id] [parameters: {'id_in_group': 1, '_payoff': '0', 'round_number': 1, '_role': '', 'trial_pay': None, 'Bonus': None, 'TreeAmount': None, 'subsession_id': 7, 'group_id': 7, 'participant_id': 69, 'session_id': 36}] (Background on this error at: http://sqlalche.me/e/13/f405) (Background on this error at: http://sqlalche.me/e/13/7s2a)



Chris @ oTree

unread,
Jul 5, 2021, 8:20:41 AM7/5/21
to oTree help & discussion
You need to reset the database after deploying, otherwise you will get those UndefinedColumn errors.

Alejandro Hirmas

unread,
Jul 5, 2021, 8:29:35 AM7/5/21
to oTree help & discussion

Thank you so much!

It was driving me crazy! :)
Reply all
Reply to author
Forward
0 new messages