Getting exceptions in the log and no way to paste the full log (too big).
It started when it was doing its scheduled scrape for stirr, here is that one
log
2026-03-17T22:58:05.783101830Z 2026-03-17 15:58:05,782 INFO __main__: [scheduler] Enqueued stirr (interval=360m, age=361m)
2026-03-17T22:58:05.928286366Z 2026-03-17 15:58:05,927 INFO app.worker: FastChannels worker v1.4.0 starting
2026-03-17T22:58:05.938928075Z 2026-03-17 15:58:05,938 INFO app.worker: [stirr] Scrape job started
2026-03-17T22:58:06.693193684Z 2026-03-17 15:58:06,692 INFO app.scrapers.stirr: [stirr] 156 channels fetched
2026-03-17T22:58:08.048153727Z 2026-03-17 15:58:08,047 INFO __main__: [worker] pruned 1441 expired EPG entries
2026-03-17T22:58:42.332610930Z 2026-03-17 15:58:42,332 INFO app.scrapers.stirr: [stirr] 33015 total programs fetched
2026-03-17T22:58:57.577309182Z 2026-03-17 15:58:57,418 ERROR app.worker: [stirr] Scrape failed after 51.5s
2026-03-17T22:58:57.577905847Z Traceback (most recent call last):
2026-03-17T22:58:57.578045751Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
2026-03-17T22:58:57.578126324Z self.dialect.do_executemany(
2026-03-17T22:58:57.578183297Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 949, in do_executemany
2026-03-17T22:58:57.578246430Z cursor.executemany(statement, parameters)
2026-03-17T22:58:57.578294419Z sqlite3.OperationalError: database is locked
2026-03-17T22:58:57.578353046Z
2026-03-17T22:58:57.578401354Z The above exception was the direct cause of the following exception:
2026-03-17T22:58:57.578469307Z
2026-03-17T22:58:57.578508306Z Traceback (most recent call last):
2026-03-17T22:58:57.578559655Z File "/app/app/worker.py", line 126, in run_scraper
2026-03-17T22:58:57.578616579Z _upsert_channels(source, channels)
2026-03-17T22:58:57.578686779Z File "/app/app/worker.py", line 603, in _upsert_channels
2026-03-17T22:58:57.578750400Z db.session.flush()
2026-03-17T22:58:57.578792923Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/scoping.py", line 924, in flush
2026-03-17T22:58:57.578854472Z return self._proxied.flush(objects=objects)
2026-03-17T22:58:57.578907991Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.578946495Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4331, in flush
2026-03-17T22:58:57.579004611Z self._flush(objects)
2026-03-17T22:58:57.579058619Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4466, in _flush
2026-03-17T22:58:57.579106605Z with util.safe_reraise():
2026-03-17T22:58:57.579157135Z ^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.579208296Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 121, in __exit__
2026-03-17T22:58:57.579259080Z raise exc_value.with_traceback(exc_tb)
2026-03-17T22:58:57.579312064Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4427, in _flush
2026-03-17T22:58:57.579372653Z flush_context.execute()
2026-03-17T22:58:57.579428965Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
2026-03-17T22:58:57.579478291Z rec.execute(self)
2026-03-17T22:58:57.579530374Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
2026-03-17T22:58:57.579590852Z util.preloaded.orm_persistence.save_obj(
2026-03-17T22:58:57.579636464Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 85, in save_obj
2026-03-17T22:58:57.579705760Z _emit_update_statements(
2026-03-17T22:58:57.579754262Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 912, in _emit_update_statements
2026-03-17T22:58:57.579803012Z c = connection.execute(
2026-03-17T22:58:57.579918713Z ^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.579964841Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
2026-03-17T22:58:57.580013867Z return meth(
2026-03-17T22:58:57.580054160Z ^^^^^
2026-03-17T22:58:57.580095965Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
2026-03-17T22:58:57.580146016Z return connection._execute_clauseelement(
2026-03-17T22:58:57.580191125Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.580228894Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
2026-03-17T22:58:57.580276329Z ret = self._execute_context(
2026-03-17T22:58:57.580320845Z ^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.580360447Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
2026-03-17T22:58:57.580407919Z return self._exec_single_context(
2026-03-17T22:58:57.580447525Z ^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.580484454Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
2026-03-17T22:58:57.580531640Z self._handle_dbapi_exception(
2026-03-17T22:58:57.580574813Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
2026-03-17T22:58:57.580622363Z raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2026-03-17T22:58:57.580677714Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
2026-03-17T22:58:57.580724983Z self.dialect.do_executemany(
2026-03-17T22:58:57.580764432Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 949, in do_executemany
2026-03-17T22:58:57.580816269Z cursor.executemany(statement, parameters)
2026-03-17T22:58:57.580857302Z sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked
2026-03-17T22:58:57.580966039Z [SQL: UPDATE channels SET name=?, slug=?, updated_at=? WHERE channels.id = ?]
2026-03-17T22:58:57.581045071Z [parameters: [('News On 6 Tulsa OK', 'news-on-6-tulsa-ok', '2026-03-17 22:58:42.400222', 4141), ('News 9 Oklahoma City OK', 'news-9-oklahoma-city-ok', '2026-03-17 22:58:42.400241', 4142), ('ABC 5 Minneapolis-St. Paul MN', 'abc-5-minneapolis-st.-paul-mn', '2026-03-17 22:58:42.400245', 4143), ('KOB 4 Albuquerque NM', 'kob-4-albuquerque-nm', '2026-03-17 22:58:42.400247', 4144), ('NewsChannel 13 Albany NY', 'newschannel-13-albany-ny', '2026-03-17 22:58:42.400250', 4145), ('News10NBC Rochester NY', 'news10nbc-rochester-ny', '2026-03-17 22:58:42.400253', 4146), ('WDIO ABC News Duluth MN', 'wdio-abc-news-duluth-mn', '2026-03-17 22:58:42.400255', 4147), ('ABC 6 NEWS Minnesota & Iowa', 'abc-6-news-minnesota-&-iowa', '2026-03-17 22:58:42.400258', 4148) ... displaying 10 of 34 total bound parameter sets ... ('KSL-TV -5 Salt Lake City UT', 'ksl-tv--5-salt-lake-city-ut', '2026-03-17 22:58:42.400315', 4174), ('FOX 11 Green Bay WI 2', 'fox-11-green-bay-wi-2', '2026-03-17 22:58:42.400317', 4175)]]
2026-03-17T22:58:57.581196731Z (Background on this error at: https://sqlalche.me/e/20/e3q8)
2026-03-17T22:58:57.624681799Z 2026-03-17 15:58:57,624 ERROR rq.worker: [Job bed81a6f-691c-47ec-a57a-6a0065345c12]: exception raised while executing (app.worker.run_scraper)
2026-03-17T22:58:57.624873323Z Traceback (most recent call last):
2026-03-17T22:58:57.624920825Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
2026-03-17T22:58:57.625027424Z self.dialect.do_executemany(
2026-03-17T22:58:57.625069369Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 949, in do_executemany
2026-03-17T22:58:57.625117779Z cursor.executemany(statement, parameters)
2026-03-17T22:58:57.625160121Z sqlite3.OperationalError: database is locked
2026-03-17T22:58:57.625202118Z
2026-03-17T22:58:57.625239087Z The above exception was the direct cause of the following exception:
2026-03-17T22:58:57.625284182Z
2026-03-17T22:58:57.625320360Z Traceback (most recent call last):
2026-03-17T22:58:57.625360283Z File "/app/app/worker.py", line 126, in run_scraper
2026-03-17T22:58:57.625403435Z _upsert_channels(source, channels)
2026-03-17T22:58:57.625447466Z File "/app/app/worker.py", line 603, in _upsert_channels
2026-03-17T22:58:57.625490839Z db.session.flush()
2026-03-17T22:58:57.625533191Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/scoping.py", line 924, in flush
2026-03-17T22:58:57.625581253Z return self._proxied.flush(objects=objects)
2026-03-17T22:58:57.625622250Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.625674634Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4331, in flush
2026-03-17T22:58:57.625722428Z self._flush(objects)
2026-03-17T22:58:57.625766794Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4466, in _flush
2026-03-17T22:58:57.625813574Z with util.safe_reraise():
2026-03-17T22:58:57.625852731Z ^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.625889770Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 121, in __exit__
2026-03-17T22:58:57.625938246Z raise exc_value.with_traceback(exc_tb)
2026-03-17T22:58:57.625980730Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 4427, in _flush
2026-03-17T22:58:57.626027300Z flush_context.execute()
2026-03-17T22:58:57.626065983Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 466, in execute
2026-03-17T22:58:57.626152162Z rec.execute(self)
2026-03-17T22:58:57.626192332Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/unitofwork.py", line 642, in execute
2026-03-17T22:58:57.626238488Z util.preloaded.orm_persistence.save_obj(
2026-03-17T22:58:57.626279530Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 85, in save_obj
2026-03-17T22:58:57.626326927Z _emit_update_statements(
2026-03-17T22:58:57.626368297Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/persistence.py", line 912, in _emit_update_statements
2026-03-17T22:58:57.626417359Z c = connection.execute(
2026-03-17T22:58:57.626456698Z ^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.626493648Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
2026-03-17T22:58:57.626548478Z return meth(
2026-03-17T22:58:57.626606163Z ^^^^^
2026-03-17T22:58:57.626650977Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 527, in _execute_on_connection
2026-03-17T22:58:57.626699354Z return connection._execute_clauseelement(
2026-03-17T22:58:57.626739048Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.626782127Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
2026-03-17T22:58:57.626828584Z ret = self._execute_context(
2026-03-17T22:58:57.626868555Z ^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.626905468Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
2026-03-17T22:58:57.626951216Z return self._exec_single_context(
2026-03-17T22:58:57.626990027Z ^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.627026937Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
2026-03-17T22:58:57.627073133Z self._handle_dbapi_exception(
2026-03-17T22:58:57.627111599Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
2026-03-17T22:58:57.627157642Z raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2026-03-17T22:58:57.627199942Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
2026-03-17T22:58:57.627249300Z self.dialect.do_executemany(
2026-03-17T22:58:57.627292668Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 949, in do_executemany
2026-03-17T22:58:57.627339065Z cursor.executemany(statement, parameters)
2026-03-17T22:58:57.627378962Z sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) database is locked
2026-03-17T22:58:57.627421572Z [SQL: UPDATE channels SET name=?, slug=?, updated_at=? WHERE channels.id = ?]
2026-03-17T22:58:57.627469047Z [parameters: [('News On 6 Tulsa OK', 'news-on-6-tulsa-ok', '2026-03-17 22:58:42.400222', 4141), ('News 9 Oklahoma City OK', 'news-9-oklahoma-city-ok', '2026-03-17 22:58:42.400241', 4142), ('ABC 5 Minneapolis-St. Paul MN', 'abc-5-minneapolis-st.-paul-mn', '2026-03-17 22:58:42.400245', 4143), ('KOB 4 Albuquerque NM', 'kob-4-albuquerque-nm', '2026-03-17 22:58:42.400247', 4144), ('NewsChannel 13 Albany NY', 'newschannel-13-albany-ny', '2026-03-17 22:58:42.400250', 4145), ('News10NBC Rochester NY', 'news10nbc-rochester-ny', '2026-03-17 22:58:42.400253', 4146), ('WDIO ABC News Duluth MN', 'wdio-abc-news-duluth-mn', '2026-03-17 22:58:42.400255', 4147), ('ABC 6 NEWS Minnesota & Iowa', 'abc-6-news-minnesota-&-iowa', '2026-03-17 22:58:42.400258', 4148) ... displaying 10 of 34 total bound parameter sets ... ('KSL-TV -5 Salt Lake City UT', 'ksl-tv--5-salt-lake-city-ut', '2026-03-17 22:58:42.400315', 4174), ('FOX 11 Green Bay WI 2', 'fox-11-green-bay-wi-2', '2026-03-17 22:58:42.400317', 4175)]]
2026-03-17T22:58:57.627591360Z (Background on this error at: https://sqlalche.me/e/20/e3q8)
2026-03-17T22:58:57.627636613Z
2026-03-17T22:58:57.627680775Z During handling of the above exception, another exception occurred:
2026-03-17T22:58:57.627726284Z
2026-03-17T22:58:57.627762831Z Traceback (most recent call last):
2026-03-17T22:58:57.627822664Z File "/usr/local/lib/python3.12/site-packages/rq/worker.py", line 1430, in perform_job
2026-03-17T22:58:57.627872186Z rv = job.perform()
2026-03-17T22:58:57.627917286Z ^^^^^^^^^^^^^
2026-03-17T22:58:57.627954628Z File "/usr/local/lib/python3.12/site-packages/rq/job.py", line 1280, in perform
2026-03-17T22:58:57.628001401Z self._result = self._execute()
2026-03-17T22:58:57.628041754Z ^^^^^^^^^^^^^^^
2026-03-17T22:58:57.628080786Z File "/usr/local/lib/python3.12/site-packages/rq/job.py", line 1317, in _execute
2026-03-17T22:58:57.628129445Z result = self.func(*self.args, **self.kwargs)
2026-03-17T22:58:57.628173091Z ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.628210570Z File "/app/app/worker.py", line 163, in run_scraper
2026-03-17T22:58:57.628253359Z db.session.commit()
2026-03-17T22:58:57.628293403Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/scoping.py", line 597, in commit
2026-03-17T22:58:57.628341565Z return self._proxied.commit()
2026-03-17T22:58:57.628381120Z ^^^^^^^^^^^^^^^^^^^^^^
2026-03-17T22:58:57.628418704Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2030, in commit
2026-03-17T22:58:57.628465931Z trans.commit(_to_root=True)
2026-03-17T22:58:57.628507949Z File "<string>", line 2, in commit
2026-03-17T22:58:57.628551460Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/state_changes.py", line 101, in _go
2026-03-17T22:58:57.628600089Z self._raise_for_prerequisite_state(fn.__name__, current_state)
2026-03-17T22:58:57.628652525Z File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 971, in _raise_for_prerequisite_state
2026-03-17T22:58:57.628703062Z raise sa_exc.PendingRollbackError(
2026-03-17T22:58:57.628749845Z sqlalchemy.exc.PendingRollbackError: 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: (sqlite3.OperationalError) database is locked
2026-03-17T22:58:57.628838665Z [SQL: UPDATE channels SET name=?, slug=?, updated_at=? WHERE channels.id = ?]
2026-03-17T22:58:57.628885001Z [parameters: [('News On 6 Tulsa OK', 'news-on-6-tulsa-ok', '2026-03-17 22:58:42.400222', 4141), ('News 9 Oklahoma City OK', 'news-9-oklahoma-city-ok', '2026-03-17 22:58:42.400241', 4142), ('ABC 5 Minneapolis-St. Paul MN', 'abc-5-minneapolis-st.-paul-mn', '2026-03-17 22:58:42.400245', 4143), ('KOB 4 Albuquerque NM', 'kob-4-albuquerque-nm', '2026-03-17 22:58:42.400247', 4144), ('NewsChannel 13 Albany NY', 'newschannel-13-albany-ny', '2026-03-17 22:58:42.400250', 4145), ('News10NBC Rochester NY', 'news10nbc-rochester-ny', '2026-03-17 22:58:42.400253', 4146), ('WDIO ABC News Duluth MN', 'wdio-abc-news-duluth-mn', '2026-03-17 22:58:42.400255', 4147), ('ABC 6 NEWS Minnesota & Iowa', 'abc-6-news-minnesota-&-iowa', '2026-03-17 22:58:42.400258', 4148) ... displaying 10 of 34 total bound parameter sets ... ('KSL-TV -5 Salt Lake City UT', 'ksl-tv--5-salt-lake-city-ut', '2026-03-17 22:58:42.400315', 4174), ('FOX 11 Green Bay WI 2', 'fox-11-green-bay-wi-2', '2026-03-17 22:58:42.400317', 4175)]]
2026-03-17T22:58:57.628988728Z (Background on this error at: https://sqlalche.me/e/20/e3q8) (Background on this error at: https://sqlalche.me/e/20/7s2a)
and getting more of these as I'm trying to disable sources.
I figured I will wait until the exceptions stop and enable one source at a time to select channels from.
O.K. not seeing any more exceptions in the log and I have all sources disabled except for one.
I think I'll wait for the new version before continuing.