Files
Imago/test_output.log
T
bruno 2f2a5e9b4a
CI / Lint & Format (push) Failing after 28s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 8s
CI / Docker Build (push) Has been skipped
Add admin panel, WebSocket support, and API versioning
Introduce an admin portal (React + Nginx), WebSocket routing, and
API versioning middleware with `/api/v1/` prefix deprecation.
Add master API key authentication, new Prometheus metrics for AI
token consumption and active WebSockets, and extend S3 config
with a public endpoint URL. Update test paths and fixtures to
align with the new routing structure.
2026-06-22 11:25:22 -04:00

1625 lines
277 KiB
Plaintext

============================= test session starts =============================
platform win32 -- Python 3.14.3, pytest-8.3.3, pluggy-1.6.0 -- C:\Users\bruno\scoop\apps\python\current\python.exe
cachedir: .pytest_cache
rootdir: C:\dev\git\python\imago
configfile: pytest.ini
plugins: anyio-4.12.0, asyncio-0.24.0, cov-5.0.0, mock-3.15.1, respx-0.22.0
asyncio: mode=Mode.AUTO, default_loop_scope=None
collecting ... collected 8 items
tests/test_websocket.py::TestWSPipelineNoToken::test_no_token_rejected PASSED [ 12%]
tests/test_websocket.py::TestWSPipelineInvalidToken::test_invalid_token_rejected PASSED [ 25%]
tests/test_websocket.py::TestWSPipelineAuth::test_valid_token_accepted PASSED [ 37%]
tests/test_websocket.py::TestWSPipelineAuth::test_valid_token_accepted ERROR [ 37%]
tests/test_websocket.py::TestWSPipelineAuth::test_wrong_owner_rejected PASSED [ 50%]
tests/test_websocket.py::TestWSPipelineSyntheticDone::test_done_image_sends_synthetic PASSED [ 62%]
tests/test_websocket.py::TestWSPipelineSyntheticDone::test_done_image_sends_synthetic ERROR [ 62%]
tests/test_websocket.py::TestWSPipelineSyntheticError::test_error_image_sends_synthetic PASSED [ 75%]
tests/test_websocket.py::TestWSPipelineSyntheticError::test_error_image_sends_synthetic ERROR [ 75%]
tests/test_websocket.py::TestWSAdminMonitor::test_admin_no_token_rejected PASSED [ 87%]
tests/test_websocket.py::TestWSAdminMonitor::test_admin_non_admin_rejected PASSED [100%]
=================================== ERRORS ====================================
______ ERROR at teardown of TestWSPipelineAuth.test_valid_token_accepted ______
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:263: in rollback
self.await_(self._connection.rollback())
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:196: in greenlet_spawn
value = await result
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:169: in rollback
await self._execute(self._conn.rollback)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:83: in _conn
raise ValueError("no active connection")
E ValueError: no active connection
The above exception was the direct cause of the following exception:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlite3.OperationalError: no active connection
The above exception was the direct cause of the following exception:
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:341: in finalizer
event_loop.run_until_complete(async_finalizer())
C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py:719: in run_until_complete
return future.result()
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:333: in async_finalizer
await gen_obj.__anext__() # type: ignore[union-attr]
tests\conftest.py:89: in db_session
async with TestSessionLocal() as session:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1080: in __aexit__
await asyncio.shield(task)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1025: in close
await greenlet_spawn(self.sync_session.close)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:203: in greenlet_spawn
result = context.switch(value)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2518: in close
self._close_impl(invalidate=False)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2587: in _close_impl
transaction.close(invalidate)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:1419: in close
transaction.close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2588: in close
self._do_close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2726: in _do_close
self._close_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2712: in _close_impl
self._connection_rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2704: in _connection_rollback_impl
self.connection._rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1129: in _rollback_impl
self._handle_dbapi_exception(e, None, None, None, None)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2355: in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no active connection
E (Background on this error at: https://sqlalche.me/e/20/e3q8)
---------------------------- Captured stdout setup ----------------------------
2026-02-25T02:28:35.100145Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:35.101637Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.102012Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.102424Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789240>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:35.102665Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789240>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:35.102999Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C789240>) [aiosqlite]
2026-02-25T02:28:35.103179Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C789240>) completed [aiosqlite]
2026-02-25T02:28:35.103481Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789240>) [aiosqlite]
2026-02-25T02:28:35.103672Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789240>) completed [aiosqlite]
2026-02-25T02:28:35.104049Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.104232Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.104545Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F5340>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:35.104747Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F5340>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:35.105056Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F5340>) [aiosqlite]
2026-02-25T02:28:35.105227Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F5340>) completed [aiosqlite]
2026-02-25T02:28:35.105519Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F5340>) [aiosqlite]
2026-02-25T02:28:35.105687Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F5340>) completed [aiosqlite]
2026-02-25T02:28:35.106126Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.106312Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.106677Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F4840>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:35.106952Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F4840>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:35.107358Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F4840>) [aiosqlite]
2026-02-25T02:28:35.107547Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F4840>) completed [aiosqlite]
2026-02-25T02:28:35.107808Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F4840>) [aiosqlite]
2026-02-25T02:28:35.107970Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F4840>) completed [aiosqlite]
2026-02-25T02:28:35.108332Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.108579Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.108954Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F7F40>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:35.109152Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F7F40>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:35.109439Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F7F40>) [aiosqlite]
2026-02-25T02:28:35.109603Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F7F40>) completed [aiosqlite]
2026-02-25T02:28:35.109891Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F7F40>) [aiosqlite]
2026-02-25T02:28:35.110071Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F7F40>) completed [aiosqlite]
2026-02-25T02:28:35.110813Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.110987Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.111277Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F78C0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:35.111634Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F78C0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:35.111987Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F78C0>) [aiosqlite]
2026-02-25T02:28:35.112239Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F78C0>) completed [aiosqlite]
2026-02-25T02:28:35.112794Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.113099Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.113497Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742440>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) [aiosqlite]
2026-02-25T02:28:35.113779Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742440>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed [aiosqlite]
2026-02-25T02:28:35.114097Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742440>) [aiosqlite]
2026-02-25T02:28:35.114284Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742440>) completed [aiosqlite]
2026-02-25T02:28:35.114684Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.114872Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.115239Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742BC0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) [aiosqlite]
2026-02-25T02:28:35.115630Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742BC0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed [aiosqlite]
2026-02-25T02:28:35.116017Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742BC0>) [aiosqlite]
2026-02-25T02:28:35.116216Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742BC0>) completed [aiosqlite]
2026-02-25T02:28:35.117121Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.117391Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.117877Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7CFBC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:35.118347Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7CFBC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:35.119006Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7CFBC0>) [aiosqlite]
2026-02-25T02:28:35.119197Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7CFBC0>) completed [aiosqlite]
2026-02-25T02:28:35.119641Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.119821Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.120131Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742340>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) [aiosqlite]
2026-02-25T02:28:35.120430Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742340>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed [aiosqlite]
2026-02-25T02:28:35.120755Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742340>) [aiosqlite]
2026-02-25T02:28:35.120927Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742340>) completed [aiosqlite]
2026-02-25T02:28:35.121395Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.121566Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.121860Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C743EC0>, 'CREATE INDEX ix_images_id ON images (id)', ()) [aiosqlite]
2026-02-25T02:28:35.122125Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C743EC0>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed [aiosqlite]
2026-02-25T02:28:35.122439Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C743EC0>) [aiosqlite]
2026-02-25T02:28:35.122603Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C743EC0>) completed [aiosqlite]
2026-02-25T02:28:35.123021Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.123186Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.123466Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741D40>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) [aiosqlite]
2026-02-25T02:28:35.123704Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741D40>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed [aiosqlite]
2026-02-25T02:28:35.123989Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741D40>) [aiosqlite]
2026-02-25T02:28:35.124152Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741D40>) completed [aiosqlite]
2026-02-25T02:28:35.124553Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.124840Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.125252Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7420C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) [aiosqlite]
2026-02-25T02:28:35.125518Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7420C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed [aiosqlite]
2026-02-25T02:28:35.125838Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7420C0>) [aiosqlite]
2026-02-25T02:28:35.126006Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7420C0>) completed [aiosqlite]
2026-02-25T02:28:35.126416Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.126638Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.127004Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.127235Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.130149Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.130392Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.130726Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789B40>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:35.129914', '2026-02-25 02:28:35.129916')) [aiosqlite]
2026-02-25T02:28:35.131108Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789B40>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:35.129914', '2026-02-25 02:28:35.129916')) completed [aiosqlite]
2026-02-25T02:28:35.131470Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789B40>) [aiosqlite]
2026-02-25T02:28:35.131648Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789B40>) completed [aiosqlite]
2026-02-25T02:28:35.132262Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.132469Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.132774Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.132938Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.135113Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.135376Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.135719Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7425C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d',)) [aiosqlite]
2026-02-25T02:28:35.136001Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7425C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d',)) completed [aiosqlite]
2026-02-25T02:28:35.136360Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7425C0>) [aiosqlite]
2026-02-25T02:28:35.136542Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7425C0>) completed [aiosqlite]
2026-02-25T02:28:35.136874Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7425C0>) [aiosqlite]
2026-02-25T02:28:35.137065Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7425C0>) completed [aiosqlite]
----------------------------- Captured log setup ------------------------------
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789240>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789240>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C789240>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C789240>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789240>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789240>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F5340>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F5340>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F5340>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F5340>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F5340>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F5340>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F4840>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F4840>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F4840>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F4840>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F4840>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F4840>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F7F40>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F7F40>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F7F40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C6F7F40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F7F40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F7F40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F78C0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C6F78C0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F78C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C6F78C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742440>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742440>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742440>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742440>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742BC0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742BC0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742BC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742BC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7CFBC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7CFBC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7CFBC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7CFBC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742340>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C742340>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742340>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C742340>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C743EC0>, 'CREATE INDEX ix_images_id ON images (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C743EC0>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C743EC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C743EC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741D40>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741D40>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741D40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741D40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7420C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7420C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7420C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7420C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789B40>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:35.129914', '2026-02-25 02:28:35.129916'))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789B40>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:35.129914', '2026-02-25 02:28:35.129916')) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789B40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789B40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7425C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7425C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('ead8707d-34f8-4468-9fe3-4f912ac57e5d',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7425C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7425C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7425C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7425C0>) completed
---------------------------- Captured stdout call -----------------------------
2026-02-25T02:28:35.141151Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.141577Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.142256Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('be8b8fd9-3517-4e69-8708-c7eef0dfff5b', 'ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'test.jpg', 'test.jpg', '/data/test.jpg', None, None, None, None, None, '2026-02-25 02:28:35.140847', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) [aiosqlite]
2026-02-25T02:28:35.144555Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('be8b8fd9-3517-4e69-8708-c7eef0dfff5b', 'ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'test.jpg', 'test.jpg', '/data/test.jpg', None, None, None, None, None, '2026-02-25 02:28:35.140847', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed [aiosqlite]
2026-02-25T02:28:35.148306Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789940>) [aiosqlite]
2026-02-25T02:28:35.149931Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789940>) completed [aiosqlite]
2026-02-25T02:28:35.155712Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.157034Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.158594Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.159630Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.165556Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.165918Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.166377Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB540>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:35.166872Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB540>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:35.167419Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB540>) [aiosqlite]
2026-02-25T02:28:35.167717Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB540>) completed [aiosqlite]
2026-02-25T02:28:35.168180Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB540>) [aiosqlite]
2026-02-25T02:28:35.168474Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB540>) completed [aiosqlite]
2026-02-25T02:28:35.170354Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:35.172558Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.172754Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.173047Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C80DB40>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) [aiosqlite]
2026-02-25T02:28:35.173325Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C80DB40>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed [aiosqlite]
2026-02-25T02:28:35.173645Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C80DB40>) [aiosqlite]
2026-02-25T02:28:35.173820Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C80DB40>) completed [aiosqlite]
2026-02-25T02:28:35.174072Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C80DB40>) [aiosqlite]
2026-02-25T02:28:35.174229Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C80DB40>) completed [aiosqlite]
2026-02-25T02:28:35.176203Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.176457Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.176781Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB8C0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:35.177026Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB8C0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:35.177378Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB8C0>) [aiosqlite]
2026-02-25T02:28:35.177553Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB8C0>) completed [aiosqlite]
2026-02-25T02:28:35.177831Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB8C0>) [aiosqlite]
2026-02-25T02:28:35.177990Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB8C0>) completed [aiosqlite]
2026-02-25T02:28:35.178880Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.180127Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.180323Z [error ] Exception terminating connection <AdaptedConnection <Connection(Thread-2, started daemon 27452)>> [sqlalchemy.pool.impl.StaticPool]
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c44d0 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
2026-02-25T02:28:35.183434Z [debug ] executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C729210>) [aiosqlite]
2026-02-25T02:28:35.185937Z [debug ] operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C729210>) completed [aiosqlite]
2026-02-25T02:28:35.186468Z [debug
------------------------------ Captured log call ------------------------------
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('be8b8fd9-3517-4e69-8708-c7eef0dfff5b', 'ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'test.jpg', 'test.jpg', '/data/test.jpg', None, None, None, None, None, '2026-02-25 02:28:35.140847', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C789940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('be8b8fd9-3517-4e69-8708-c7eef0dfff5b', 'ead8707d-34f8-4468-9fe3-4f912ac57e5d', 'test.jpg', 'test.jpg', '/data/test.jpg', None, None, None, None, None, '2026-02-25 02:28:35.140847', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C789940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB540>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB540>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB540>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB540>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB540>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB540>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C80DB40>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C80DB40>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C80DB40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C80DB40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C80DB40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C80DB40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C729210>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB8C0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7EB8C0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB8C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7EB8C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB8C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7EB8C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C729210>) completed
ERROR sqlalchemy.pool.impl.StaticPool:base.py:378 Exception terminating connection <AdaptedConnection <Connection(Thread-2, started daemon 27452)>>
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c44d0 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C729210>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C729210>) completed
-------------------------- Captured stdout teardown ---------------------------
[aiosqlite]
2026-02-25T02:28:35.188385Z [debug ] executing <function connect.<locals>.connector at 0x000001F56C808A90> [aiosqlite]
2026-02-25T02:28:35.188631Z [debug ] operation <function connect.<locals>.connector at 0x000001F56C808A90> completed [aiosqlite]
2026-02-25T02:28:35.188934Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) [aiosqlite]
2026-02-25T02:28:35.189116Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:35.189418Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'floor', 1, <built-in function floor>, deterministic=True) [aiosqlite]
2026-02-25T02:28:35.189594Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'floor', 1, <built-in function floor>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:35.190023Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.190187Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.190478Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7E99C0>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:35.190716Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7E99C0>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:35.190999Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7E99C0>) [aiosqlite]
2026-02-25T02:28:35.191152Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7E99C0>) completed [aiosqlite]
2026-02-25T02:28:35.191433Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7E99C0>) [aiosqlite]
2026-02-25T02:28:35.191617Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7E99C0>) completed [aiosqlite]
2026-02-25T02:28:35.192048Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.192227Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.192550Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B540>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:35.192892Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B540>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:35.193222Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B540>) [aiosqlite]
2026-02-25T02:28:35.193384Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B540>) completed [aiosqlite]
2026-02-25T02:28:35.193704Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B540>) [aiosqlite]
2026-02-25T02:28:35.193884Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B540>) completed [aiosqlite]
2026-02-25T02:28:35.194289Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.194462Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.194736Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B4C0>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:35.194953Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B4C0>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:35.195247Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B4C0>) [aiosqlite]
2026-02-25T02:28:35.195423Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B4C0>) completed [aiosqlite]
2026-02-25T02:28:35.195699Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B4C0>) [aiosqlite]
2026-02-25T02:28:35.195869Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B4C0>) completed [aiosqlite]
2026-02-25T02:28:35.196251Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.196520Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.196915Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B5C0>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:35.197181Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B5C0>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:35.197487Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B5C0>) [aiosqlite]
2026-02-25T02:28:35.197645Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B5C0>) completed [aiosqlite]
2026-02-25T02:28:35.197900Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B5C0>) [aiosqlite]
2026-02-25T02:28:35.198057Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B5C0>) completed [aiosqlite]
2026-02-25T02:28:35.198437Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.198592Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.198951Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:35.199105Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:35.199803Z [debug ] Using proactor: IocpProactor [asyncio]
---------------------------- Captured log teardown ----------------------------
DEBUG aiosqlite:core.py:119 returning exception Event loop is closed
DEBUG aiosqlite:core.py:114 executing <function connect.<locals>.connector at 0x000001F56C808A90>
DEBUG aiosqlite:core.py:116 operation <function connect.<locals>.connector at 0x000001F56C808A90> completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'floor', 1, <built-in function floor>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E0C70>, 'floor', 1, <built-in function floor>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7E99C0>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7E99C0>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7E99C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7E99C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7E99C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7E99C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B540>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B540>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B540>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B540>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B540>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B540>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B4C0>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B4C0>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B4C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B4C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B4C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B4C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B5C0>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C88B5C0>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B5C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C88B5C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B5C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C88B5C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
_ ERROR at teardown of TestWSPipelineSyntheticDone.test_done_image_sends_synthetic _
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:263: in rollback
self.await_(self._connection.rollback())
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:196: in greenlet_spawn
value = await result
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:169: in rollback
await self._execute(self._conn.rollback)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:83: in _conn
raise ValueError("no active connection")
E ValueError: no active connection
The above exception was the direct cause of the following exception:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlite3.OperationalError: no active connection
The above exception was the direct cause of the following exception:
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:341: in finalizer
event_loop.run_until_complete(async_finalizer())
C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py:719: in run_until_complete
return future.result()
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:333: in async_finalizer
await gen_obj.__anext__() # type: ignore[union-attr]
tests\conftest.py:89: in db_session
async with TestSessionLocal() as session:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1080: in __aexit__
await asyncio.shield(task)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1025: in close
await greenlet_spawn(self.sync_session.close)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:203: in greenlet_spawn
result = context.switch(value)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2518: in close
self._close_impl(invalidate=False)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2587: in _close_impl
transaction.close(invalidate)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:1419: in close
transaction.close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2588: in close
self._do_close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2726: in _do_close
self._close_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2712: in _close_impl
self._connection_rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2704: in _connection_rollback_impl
self.connection._rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1129: in _rollback_impl
self._handle_dbapi_exception(e, None, None, None, None)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2355: in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no active connection
E (Background on this error at: https://sqlalche.me/e/20/e3q8)
---------------------------- Captured stdout setup ----------------------------
2026-02-25T02:28:36.300619Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:36.301804Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.302051Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.302339Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D940>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.302567Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D940>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.302902Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D940>) [aiosqlite]
2026-02-25T02:28:36.303079Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D940>) completed [aiosqlite]
2026-02-25T02:28:36.303421Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D940>) [aiosqlite]
2026-02-25T02:28:36.303586Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D940>) completed [aiosqlite]
2026-02-25T02:28:36.303936Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.304086Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.304392Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DCC0>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.304582Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DCC0>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.304851Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DCC0>) [aiosqlite]
2026-02-25T02:28:36.305000Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DCC0>) completed [aiosqlite]
2026-02-25T02:28:36.305223Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DCC0>) [aiosqlite]
2026-02-25T02:28:36.305395Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DCC0>) completed [aiosqlite]
2026-02-25T02:28:36.305755Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.305930Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.306192Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C640>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.306358Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C640>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.306625Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C640>) [aiosqlite]
2026-02-25T02:28:36.306768Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C640>) completed [aiosqlite]
2026-02-25T02:28:36.307033Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C640>) [aiosqlite]
2026-02-25T02:28:36.307305Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C640>) completed [aiosqlite]
2026-02-25T02:28:36.307754Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.307901Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.308160Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DEC0>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.308326Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DEC0>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.308715Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DEC0>) [aiosqlite]
2026-02-25T02:28:36.309006Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DEC0>) completed [aiosqlite]
2026-02-25T02:28:36.309388Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DEC0>) [aiosqlite]
2026-02-25T02:28:36.309548Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DEC0>) completed [aiosqlite]
2026-02-25T02:28:36.310229Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.310409Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.310715Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CBC0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:36.311066Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CBC0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:36.311445Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CBC0>) [aiosqlite]
2026-02-25T02:28:36.311603Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CBC0>) completed [aiosqlite]
2026-02-25T02:28:36.311980Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.312134Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.312388Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C140>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) [aiosqlite]
2026-02-25T02:28:36.312677Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C140>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed [aiosqlite]
2026-02-25T02:28:36.312946Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C140>) [aiosqlite]
2026-02-25T02:28:36.313105Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C140>) completed [aiosqlite]
2026-02-25T02:28:36.313457Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.313610Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.313862Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D9C0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) [aiosqlite]
2026-02-25T02:28:36.314079Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D9C0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.314328Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D9C0>) [aiosqlite]
2026-02-25T02:28:36.314471Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D9C0>) completed [aiosqlite]
2026-02-25T02:28:36.315117Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.315284Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.315571Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D240>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:36.315918Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D240>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:36.316217Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D240>) [aiosqlite]
2026-02-25T02:28:36.316363Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D240>) completed [aiosqlite]
2026-02-25T02:28:36.316805Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.317095Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.317456Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C7C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) [aiosqlite]
2026-02-25T02:28:36.317703Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C7C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed [aiosqlite]
2026-02-25T02:28:36.317959Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C7C0>) [aiosqlite]
2026-02-25T02:28:36.318112Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C7C0>) completed [aiosqlite]
2026-02-25T02:28:36.318435Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.318584Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.318808Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D6C0>, 'CREATE INDEX ix_images_id ON images (id)', ()) [aiosqlite]
2026-02-25T02:28:36.319021Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D6C0>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.319293Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D6C0>) [aiosqlite]
2026-02-25T02:28:36.319442Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D6C0>) completed [aiosqlite]
2026-02-25T02:28:36.319796Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.319963Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.320258Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D640>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) [aiosqlite]
2026-02-25T02:28:36.320525Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D640>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.320822Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D640>) [aiosqlite]
2026-02-25T02:28:36.320970Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D640>) completed [aiosqlite]
2026-02-25T02:28:36.321263Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.321415Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.321654Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CCC0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) [aiosqlite]
2026-02-25T02:28:36.321884Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CCC0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed [aiosqlite]
2026-02-25T02:28:36.322153Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CCC0>) [aiosqlite]
2026-02-25T02:28:36.322294Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CCC0>) completed [aiosqlite]
2026-02-25T02:28:36.322653Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.322795Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.323135Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.323275Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.324815Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.325001Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.325371Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C2C0>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('399d3394-7ca8-40b1-81ed-f5873ed0284a', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.324691', '2026-02-25 02:28:36.324693')) [aiosqlite]
2026-02-25T02:28:36.325724Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C2C0>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('399d3394-7ca8-40b1-81ed-f5873ed0284a', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.324691', '2026-02-25 02:28:36.324693')) completed [aiosqlite]
2026-02-25T02:28:36.326154Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C2C0>) [aiosqlite]
2026-02-25T02:28:36.326328Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C2C0>) completed [aiosqlite]
2026-02-25T02:28:36.326932Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.327110Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.327411Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.327592Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.328439Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.328613Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.328911Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DFC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('399d3394-7ca8-40b1-81ed-f5873ed0284a',)) [aiosqlite]
2026-02-25T02:28:36.329160Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DFC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('399d3394-7ca8-40b1-81ed-f5873ed0284a',)) completed [aiosqlite]
2026-02-25T02:28:36.329439Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DFC0>) [aiosqlite]
2026-02-25T02:28:36.329601Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DFC0>) completed [aiosqlite]
2026-02-25T02:28:36.329834Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DFC0>) [aiosqlite]
2026-02-25T02:28:36.329985Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DFC0>) completed [aiosqlite]
----------------------------- Captured log setup ------------------------------
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D940>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D940>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DCC0>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DCC0>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DCC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DCC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DCC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DCC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C640>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C640>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C640>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C640>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C640>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C640>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DEC0>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DEC0>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DEC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DEC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DEC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DEC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CBC0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CBC0>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CBC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CBC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C140>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C140>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D9C0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D9C0>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D9C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D9C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D240>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D240>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D240>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D240>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C7C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C7C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C7C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C7C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D6C0>, 'CREATE INDEX ix_images_id ON images (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D6C0>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D6C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D6C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D640>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D640>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D640>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D640>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CCC0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CCC0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CCC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CCC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C2C0>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('399d3394-7ca8-40b1-81ed-f5873ed0284a', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.324691', '2026-02-25 02:28:36.324693'))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C2C0>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('399d3394-7ca8-40b1-81ed-f5873ed0284a', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.324691', '2026-02-25 02:28:36.324693')) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C2C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C2C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DFC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('399d3394-7ca8-40b1-81ed-f5873ed0284a',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DFC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('399d3394-7ca8-40b1-81ed-f5873ed0284a',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DFC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DFC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DFC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DFC0>) completed
---------------------------- Captured stdout call -----------------------------
2026-02-25T02:28:36.331412Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.331628Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.331867Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('cae6df23-827a-43a8-b9af-7f576729b095', '399d3394-7ca8-40b1-81ed-f5873ed0284a', 'done.jpg', 'done.jpg', '/data/done.jpg', None, None, None, None, None, '2026-02-25 02:28:36.331302', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) [aiosqlite]
2026-02-25T02:28:36.332161Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('cae6df23-827a-43a8-b9af-7f576729b095', '399d3394-7ca8-40b1-81ed-f5873ed0284a', 'done.jpg', 'done.jpg', '/data/done.jpg', None, None, None, None, None, '2026-02-25 02:28:36.331302', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed [aiosqlite]
2026-02-25T02:28:36.332455Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C940>) [aiosqlite]
2026-02-25T02:28:36.332774Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C940>) completed [aiosqlite]
2026-02-25T02:28:36.333726Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.334184Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.334717Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.334994Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.335822Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.336115Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.336524Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DE40>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:36.336844Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DE40>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:36.337123Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DE40>) [aiosqlite]
2026-02-25T02:28:36.337288Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DE40>) completed [aiosqlite]
2026-02-25T02:28:36.337530Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DE40>) [aiosqlite]
2026-02-25T02:28:36.337670Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DE40>) completed [aiosqlite]
2026-02-25T02:28:36.338716Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:36.340543Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.340817Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.341197Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E5C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) [aiosqlite]
2026-02-25T02:28:36.341437Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E5C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash 82e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed [aiosqlite]
2026-02-25T02:28:36.341813Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E5C0>) [aiosqlite]
2026-02-25T02:28:36.342021Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E5C0>) completed [aiosqlite]
2026-02-25T02:28:36.342384Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E5C0>) [aiosqlite]
2026-02-25T02:28:36.342548Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E5C0>) completed [aiosqlite]
2026-02-25T02:28:36.343350Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.343512Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.343810Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E140>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:36.344057Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E140>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:36.347648Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E140>) [aiosqlite]
2026-02-25T02:28:36.349402Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E140>) completed [aiosqlite]
2026-02-25T02:28:36.352863Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E140>) [aiosqlite]
2026-02-25T02:28:36.355158Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E140>) completed [aiosqlite]
2026-02-25T02:28:36.359099Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.361939Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.362561Z [error ] Exception terminating connection <AdaptedConnection <Connection(Thread-6, started daemon 14908)>> [sqlalchemy.pool.impl.StaticPool]
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c56d0 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
2026-02-25T02:28:36.365223Z [debug ] executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E0C70>) [aiosqlite]
2026-02-25T02:28:36.367878Z [debug ] operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E0C70>) completed [aiosqlite]
2026-02-25T02:28:36.368337Z [
------------------------------ Captured log call ------------------------------
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('cae6df23-827a-43a8-b9af-7f576729b095', '399d3394-7ca8-40b1-81ed-f5873ed0284a', 'done.jpg', 'done.jpg', '/data/done.jpg', None, None, None, None, None, '2026-02-25 02:28:36.331302', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C940>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('cae6df23-827a-43a8-b9af-7f576729b095', '399d3394-7ca8-40b1-81ed-f5873ed0284a', 'done.jpg', 'done.jpg', '/data/done.jpg', None, None, None, None, None, '2026-02-25 02:28:36.331302', 'DONE', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DE40>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4DE40>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DE40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4DE40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DE40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4DE40>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E5C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E5C0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E5C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E5C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E5C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E5C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E140>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4E140>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4E140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4E140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
ERROR sqlalchemy.pool.impl.StaticPool:base.py:378 Exception terminating connection <AdaptedConnection <Connection(Thread-6, started daemon 14908)>>
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c56d0 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E0C70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E0C70>) completed
-------------------------- Captured stdout teardown ---------------------------
aiosqlite]
2026-02-25T02:28:36.370624Z [debug ] executing <function connect.<locals>.connector at 0x000001F56C80B740> [aiosqlite]
2026-02-25T02:28:36.370938Z [debug ] operation <function connect.<locals>.connector at 0x000001F56C80B740> completed [aiosqlite]
2026-02-25T02:28:36.371299Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) [aiosqlite]
2026-02-25T02:28:36.371506Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:36.371816Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'floor', 1, <built-in function floor>, deterministic=True) [aiosqlite]
2026-02-25T02:28:36.372009Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'floor', 1, <built-in function floor>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:36.372456Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.372628Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.372896Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C040>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.373140Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C040>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.373419Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C040>) [aiosqlite]
2026-02-25T02:28:36.373571Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C040>) completed [aiosqlite]
2026-02-25T02:28:36.373835Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C040>) [aiosqlite]
2026-02-25T02:28:36.373986Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C040>) completed [aiosqlite]
2026-02-25T02:28:36.374336Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.374502Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.374754Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D3C0>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.374951Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D3C0>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.375265Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D3C0>) [aiosqlite]
2026-02-25T02:28:36.375471Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D3C0>) completed [aiosqlite]
2026-02-25T02:28:36.375757Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D3C0>) [aiosqlite]
2026-02-25T02:28:36.375919Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D3C0>) completed [aiosqlite]
2026-02-25T02:28:36.376309Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.376472Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.376779Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CAC0>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.376958Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CAC0>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.377205Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4CAC0>) [aiosqlite]
2026-02-25T02:28:36.377352Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4CAC0>) completed [aiosqlite]
2026-02-25T02:28:36.377613Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CAC0>) [aiosqlite]
2026-02-25T02:28:36.377757Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CAC0>) completed [aiosqlite]
2026-02-25T02:28:36.378050Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.378210Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.378435Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4ED40>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.378597Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4ED40>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.378856Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4ED40>) [aiosqlite]
2026-02-25T02:28:36.379005Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4ED40>) completed [aiosqlite]
2026-02-25T02:28:36.379220Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4ED40>) [aiosqlite]
2026-02-25T02:28:36.379362Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4ED40>) completed [aiosqlite]
2026-02-25T02:28:36.379699Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.379837Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.380151Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.380309Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.380963Z [debug ] Using proactor: IocpProactor [asyncio]
---------------------------- Captured log teardown ----------------------------
DEBUG aiosqlite:core.py:119 returning exception Event loop is closed
DEBUG aiosqlite:core.py:114 executing <function connect.<locals>.connector at 0x000001F56C80B740>
DEBUG aiosqlite:core.py:116 operation <function connect.<locals>.connector at 0x000001F56C80B740> completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'floor', 1, <built-in function floor>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E1B70>, 'floor', 1, <built-in function floor>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C040>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4C040>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C040>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4C040>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C040>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4C040>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D3C0>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4D3C0>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D3C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4D3C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D3C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4D3C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CAC0>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4CAC0>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4CAC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4CAC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CAC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4CAC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4ED40>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CF4ED40>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4ED40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CF4ED40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4ED40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CF4ED40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
_ ERROR at teardown of TestWSPipelineSyntheticError.test_error_image_sends_synthetic _
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:263: in rollback
self.await_(self._connection.rollback())
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:132: in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:196: in greenlet_spawn
value = await result
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:169: in rollback
await self._execute(self._conn.rollback)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py:83: in _conn
raise ValueError("no active connection")
E ValueError: no active connection
The above exception was the direct cause of the following exception:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlite3.OperationalError: no active connection
The above exception was the direct cause of the following exception:
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:341: in finalizer
event_loop.run_until_complete(async_finalizer())
C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py:719: in run_until_complete
return future.result()
c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\pytest_asyncio\plugin.py:333: in async_finalizer
await gen_obj.__anext__() # type: ignore[union-attr]
tests\conftest.py:89: in db_session
async with TestSessionLocal() as session:
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1080: in __aexit__
await asyncio.shield(task)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\ext\asyncio\session.py:1025: in close
await greenlet_spawn(self.sync_session.close)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py:203: in greenlet_spawn
result = context.switch(value)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2518: in close
self._close_impl(invalidate=False)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:2587: in _close_impl
transaction.close(invalidate)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\state_changes.py:139: in _go
ret_value = fn(self, *arg, **kw)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\orm\session.py:1419: in close
transaction.close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2588: in close
self._do_close()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2726: in _do_close
self._close_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2712: in _close_impl
self._connection_rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2704: in _connection_rollback_impl
self.connection._rollback_impl()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1129: in _rollback_impl
self._handle_dbapi_exception(e, None, None, None, None)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:2355: in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\base.py:1127: in _rollback_impl
self.engine.dialect.do_rollback(self.connection)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py:699: in do_rollback
dbapi_connection.rollback()
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:265: in rollback
self._handle_exception(error)
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py:294: in _handle_exception
raise self.dbapi.sqlite.OperationalError(
E sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no active connection
E (Background on this error at: https://sqlalche.me/e/20/e3q8)
---------------------------- Captured stdout setup ----------------------------
2026-02-25T02:28:36.801430Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:36.802937Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.803217Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.803510Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741240>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.803702Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741240>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.803950Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C741240>) [aiosqlite]
2026-02-25T02:28:36.804103Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C741240>) completed [aiosqlite]
2026-02-25T02:28:36.804348Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741240>) [aiosqlite]
2026-02-25T02:28:36.804498Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741240>) completed [aiosqlite]
2026-02-25T02:28:36.804801Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.804950Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.805187Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740940>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.805369Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740940>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.805616Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740940>) [aiosqlite]
2026-02-25T02:28:36.805766Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740940>) completed [aiosqlite]
2026-02-25T02:28:36.806005Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740940>) [aiosqlite]
2026-02-25T02:28:36.806153Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740940>) completed [aiosqlite]
2026-02-25T02:28:36.806531Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.806798Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.807139Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740EC0>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.807344Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740EC0>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.807619Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740EC0>) [aiosqlite]
2026-02-25T02:28:36.807770Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740EC0>) completed [aiosqlite]
2026-02-25T02:28:36.808048Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740EC0>) [aiosqlite]
2026-02-25T02:28:36.808373Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740EC0>) completed [aiosqlite]
2026-02-25T02:28:36.808845Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.809037Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.809333Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7411C0>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.809525Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7411C0>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.809802Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7411C0>) [aiosqlite]
2026-02-25T02:28:36.809962Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7411C0>) completed [aiosqlite]
2026-02-25T02:28:36.810273Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7411C0>) [aiosqlite]
2026-02-25T02:28:36.810448Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7411C0>) completed [aiosqlite]
2026-02-25T02:28:36.811146Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.811332Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.811613Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75D40>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:36.811958Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75D40>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:36.812308Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75D40>) [aiosqlite]
2026-02-25T02:28:36.812565Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75D40>) completed [aiosqlite]
2026-02-25T02:28:36.812920Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.813076Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.813328Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD760C0>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) [aiosqlite]
2026-02-25T02:28:36.813555Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD760C0>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed [aiosqlite]
2026-02-25T02:28:36.813882Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD760C0>) [aiosqlite]
2026-02-25T02:28:36.814056Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD760C0>) completed [aiosqlite]
2026-02-25T02:28:36.814371Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.814520Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.814793Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76340>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) [aiosqlite]
2026-02-25T02:28:36.815177Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76340>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.815520Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76340>) [aiosqlite]
2026-02-25T02:28:36.815672Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76340>) completed [aiosqlite]
2026-02-25T02:28:36.816326Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.816481Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.816826Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75CC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) [aiosqlite]
2026-02-25T02:28:36.817222Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75CC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed [aiosqlite]
2026-02-25T02:28:36.817640Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75CC0>) [aiosqlite]
2026-02-25T02:28:36.817894Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75CC0>) completed [aiosqlite]
2026-02-25T02:28:36.818396Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.818645Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.818964Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD763C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) [aiosqlite]
2026-02-25T02:28:36.819239Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD763C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed [aiosqlite]
2026-02-25T02:28:36.819541Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD763C0>) [aiosqlite]
2026-02-25T02:28:36.819710Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD763C0>) completed [aiosqlite]
2026-02-25T02:28:36.820081Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.820247Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.820512Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76140>, 'CREATE INDEX ix_images_id ON images (id)', ()) [aiosqlite]
2026-02-25T02:28:36.820743Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76140>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.821011Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76140>) [aiosqlite]
2026-02-25T02:28:36.821159Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76140>) completed [aiosqlite]
2026-02-25T02:28:36.821463Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.821612Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.821917Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75DC0>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) [aiosqlite]
2026-02-25T02:28:36.822263Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75DC0>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed [aiosqlite]
2026-02-25T02:28:36.822605Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75DC0>) [aiosqlite]
2026-02-25T02:28:36.822761Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75DC0>) completed [aiosqlite]
2026-02-25T02:28:36.823096Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.823265Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.823504Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD771C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) [aiosqlite]
2026-02-25T02:28:36.823738Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD771C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed [aiosqlite]
2026-02-25T02:28:36.823980Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD771C0>) [aiosqlite]
2026-02-25T02:28:36.824127Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD771C0>) completed [aiosqlite]
2026-02-25T02:28:36.824425Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.824572Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.824946Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.825121Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.826826Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.827168Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.827724Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76040>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('c20b0d70-9861-44f4-980d-e2bde233da33', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.826605', '2026-02-25 02:28:36.826609')) [aiosqlite]
2026-02-25T02:28:36.828058Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76040>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('c20b0d70-9861-44f4-980d-e2bde233da33', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.826605', '2026-02-25 02:28:36.826609')) completed [aiosqlite]
2026-02-25T02:28:36.828408Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76040>) [aiosqlite]
2026-02-25T02:28:36.828579Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76040>) completed [aiosqlite]
2026-02-25T02:28:36.829116Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.829324Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.829627Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.829777Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.830568Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.830780Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.831136Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76AC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('c20b0d70-9861-44f4-980d-e2bde233da33',)) [aiosqlite]
2026-02-25T02:28:36.831444Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76AC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('c20b0d70-9861-44f4-980d-e2bde233da33',)) completed [aiosqlite]
2026-02-25T02:28:36.831784Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76AC0>) [aiosqlite]
2026-02-25T02:28:36.831990Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76AC0>) completed [aiosqlite]
2026-02-25T02:28:36.832250Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76AC0>) [aiosqlite]
2026-02-25T02:28:36.832421Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76AC0>) completed [aiosqlite]
----------------------------- Captured log setup ------------------------------
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741240>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C741240>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C741240>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C741240>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741240>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C741240>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740940>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740940>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740940>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740940>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740EC0>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C740EC0>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740EC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C740EC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740EC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C740EC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7411C0>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56C7411C0>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7411C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56C7411C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7411C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56C7411C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75D40>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75D40>, '\nCREATE TABLE api_clients (\n\tid VARCHAR(36) NOT NULL, \n\tname VARCHAR(256) NOT NULL, \n\tapi_key_hash VARCHAR(64) NOT NULL, \n\tscopes JSON NOT NULL, \n\t"plan" VARCHAR(8) NOT NULL, \n\tis_active BOOLEAN NOT NULL, \n\tstorage_used_bytes BIGINT NOT NULL, \n\tquota_storage_mb INTEGER NOT NULL, \n\tquota_images INTEGER NOT NULL, \n\tcreated_at DATETIME, \n\tupdated_at DATETIME, \n\tPRIMARY KEY (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75D40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75D40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD760C0>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD760C0>, 'CREATE UNIQUE INDEX ix_api_clients_api_key_hash ON api_clients (api_key_hash)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD760C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD760C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76340>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76340>, 'CREATE INDEX ix_api_clients_id ON api_clients (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76340>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76340>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75CC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75CC0>, '\nCREATE TABLE images (\n\tid INTEGER NOT NULL, \n\tuuid VARCHAR(36) NOT NULL, \n\tclient_id VARCHAR(36) NOT NULL, \n\toriginal_name VARCHAR(512) NOT NULL, \n\tfilename VARCHAR(512) NOT NULL, \n\tfile_path VARCHAR(1024) NOT NULL, \n\tthumbnail_path VARCHAR(1024), \n\tmime_type VARCHAR(128), \n\tfile_size BIGINT, \n\twidth INTEGER, \n\theight INTEGER, \n\tuploaded_at DATETIME, \n\tprocessing_status VARCHAR(10) NOT NULL, \n\tprocessing_error TEXT, \n\tprocessing_started_at DATETIME, \n\tprocessing_done_at DATETIME, \n\texif_raw JSON, \n\texif_make VARCHAR(256), \n\texif_model VARCHAR(256), \n\texif_lens VARCHAR(256), \n\texif_taken_at DATETIME, \n\texif_gps_lat FLOAT, \n\texif_gps_lon FLOAT, \n\texif_altitude FLOAT, \n\texif_iso INTEGER, \n\texif_aperture VARCHAR(32), \n\texif_shutter VARCHAR(32), \n\texif_focal VARCHAR(32), \n\texif_flash BOOLEAN, \n\texif_orientation INTEGER, \n\texif_software VARCHAR(256), \n\tocr_text TEXT, \n\tocr_language VARCHAR(64), \n\tocr_confidence FLOAT, \n\tocr_has_text BOOLEAN, \n\tai_description TEXT, \n\tai_tags JSON, \n\tai_confidence FLOAT, \n\tai_model_used VARCHAR(128), \n\tai_processed_at DATETIME, \n\tai_prompt_tokens INTEGER, \n\tai_output_tokens INTEGER, \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(client_id) REFERENCES api_clients (id)\n)\n\n', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75CC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75CC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD763C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD763C0>, 'CREATE UNIQUE INDEX ix_images_uuid ON images (uuid)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD763C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD763C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76140>, 'CREATE INDEX ix_images_id ON images (id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76140>, 'CREATE INDEX ix_images_id ON images (id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75DC0>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75DC0>, 'CREATE INDEX ix_images_client_id ON images (client_id)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75DC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75DC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD771C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD771C0>, 'CREATE INDEX ix_images_processing_status ON images (processing_status)', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD771C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD771C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76040>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('c20b0d70-9861-44f4-980d-e2bde233da33', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.826605', '2026-02-25 02:28:36.826609'))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76040>, 'INSERT INTO api_clients (id, name, api_key_hash, scopes, "plan", is_active, storage_used_bytes, quota_storage_mb, quota_images, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('c20b0d70-9861-44f4-980d-e2bde233da33', 'Test Client A', '982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1', '["images:read", "images:write", "images:delete", "ai:use"]', 'STANDARD', 1, 0, 500, 1000, '2026-02-25 02:28:36.826605', '2026-02-25 02:28:36.826609')) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76040>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76040>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76AC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('c20b0d70-9861-44f4-980d-e2bde233da33',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76AC0>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.id = ?', ('c20b0d70-9861-44f4-980d-e2bde233da33',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76AC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76AC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76AC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76AC0>) completed
---------------------------- Captured stdout call -----------------------------
[debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.834503Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.834949Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75EC0>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('9a7a42eb-31af-4238-ad88-516e258412ba', 'c20b0d70-9861-44f4-980d-e2bde233da33', 'error.jpg', 'error.jpg', '/data/error.jpg', None, None, None, None, None, '2026-02-25 02:28:36.833947', 'ERROR', 'AI timeout', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) [aiosqlite]
2026-02-25T02:28:36.835303Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75EC0>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('9a7a42eb-31af-4238-ad88-516e258412ba', 'c20b0d70-9861-44f4-980d-e2bde233da33', 'error.jpg', 'error.jpg', '/data/error.jpg', None, None, None, None, None, '2026-02-25 02:28:36.833947', 'ERROR', 'AI timeout', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed [aiosqlite]
2026-02-25T02:28:36.835673Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75EC0>) [aiosqlite]
2026-02-25T02:28:36.835850Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75EC0>) completed [aiosqlite]
2026-02-25T02:28:36.836329Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.836502Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.836831Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.836997Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.837854Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.838066Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.838359Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76CC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:36.838671Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76CC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:36.838989Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76CC0>) [aiosqlite]
2026-02-25T02:28:36.839152Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76CC0>) completed [aiosqlite]
2026-02-25T02:28:36.839378Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76CC0>) [aiosqlite]
2026-02-25T02:28:36.839525Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76CC0>) completed [aiosqlite]
2026-02-25T02:28:36.840676Z [debug ] Using proactor: IocpProactor [asyncio]
2026-02-25T02:28:36.842985Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.843243Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.843566Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76740>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) [aiosqlite]
2026-02-25T02:28:36.843861Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76740>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?'('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed [aiosqlite]
2026-02-25T02:28:36.844218Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76740>) [aiosqlite]
2026-02-25T02:28:36.844409Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76740>) completed [aiosqlite]
2026-02-25T02:28:36.844749Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76740>) [aiosqlite]
2026-02-25T02:28:36.845011Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76740>) completed [aiosqlite]
2026-02-25T02:28:36.845827Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.846000Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.846280Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76FC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) [aiosqlite]
2026-02-25T02:28:36.846500Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76FC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed [aiosqlite]
2026-02-25T02:28:36.846775Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76FC0>) [aiosqlite]
2026-02-25T02:28:36.846932Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76FC0>) completed [aiosqlite]
2026-02-25T02:28:36.847169Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76FC0>) [aiosqlite]
2026-02-25T02:28:36.847319Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76FC0>) completed [aiosqlite]
2026-02-25T02:28:36.847809Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.848519Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
2026-02-25T02:28:36.848746Z [error ] Exception terminating connection <AdaptedConnection <Connection(Thread-9, started daemon 10308)>> [sqlalchemy.pool.impl.StaticPool]
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c5e50 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
2026-02-25T02:28:36.850026Z [debug ] executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E1B70>) [aiosqlite]
2026-02-25T02:28:36.852382Z [debug ] operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E1B70>) completed [aiosqlite]
------------------------------ Captured log call ------------------------------
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75EC0>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('9a7a42eb-31af-4238-ad88-516e258412ba', 'c20b0d70-9861-44f4-980d-e2bde233da33', 'error.jpg', 'error.jpg', '/data/error.jpg', None, None, None, None, None, '2026-02-25 02:28:36.833947', 'ERROR', 'AI timeout', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75EC0>, 'INSERT INTO images (uuid, client_id, original_name, filename, file_path, thumbnail_path, mime_type, file_size, width, height, uploaded_at, processing_status, processing_error, processing_started_at, processing_done_at, exif_make, exif_model, exif_lens, exif_taken_at, exif_gps_lat, exif_gps_lon, exif_altitude, exif_iso, exif_aperture, exif_shutter, exif_focal, exif_flash, exif_orientation, exif_software, ocr_text, ocr_language, ocr_confidence, ocr_has_text, ai_description, ai_confidence, ai_model_used, ai_processed_at, ai_prompt_tokens, ai_output_tokens) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', ('9a7a42eb-31af-4238-ad88-516e258412ba', 'c20b0d70-9861-44f4-980d-e2bde233da33', 'error.jpg', 'error.jpg', '/data/error.jpg', None, None, None, None, None, '2026-02-25 02:28:36.833947', 'ERROR', 'AI timeout', None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, None)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75EC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75EC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76CC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76CC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76CC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76CC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76CC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76CC0>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76740>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76740>, 'SELECT api_clients.id, api_clients.name, api_clients.api_key_hash, api_clients.scopes, api_clients."plan", api_clients.is_active, api_clients.storage_used_bytes, api_clients.quota_storage_mb, api_clients.quota_images, api_clients.created_at, api_clients.updated_at \nFROM api_clients \nWHERE api_clients.api_key_hash = ?', ('982e4d62421a0c37943e4a54bc2511f5ca0f29003fd7aa4ae43f7b8e5b29fef1',)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76740>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76740>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76740>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76740>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76FC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,))
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76FC0>, 'SELECT images.id, images.uuid, images.client_id, images.original_name, images.filename, images.file_path, images.thumbnail_path, images.mime_type, images.file_size, images.width, images.height, images.uploaded_at, images.processing_status, images.processing_error, images.processing_started_at, images.processing_done_at, images.exif_raw, images.exif_make, images.exif_model, images.exif_lens, images.exif_taken_at, images.exif_gps_lat, images.exif_gps_lon, images.exif_altitude, images.exif_iso, images.exif_aperture, images.exif_shutter, images.exif_focal, images.exif_flash, images.exif_orientation, images.exif_software, images.ocr_text, images.ocr_language, images.ocr_confidence, images.ocr_has_text, images.ai_description, images.ai_tags, images.ai_confidence, images.ai_model_used, images.ai_processed_at, images.ai_prompt_tokens, images.ai_output_tokens \nFROM images \nWHERE images.id = ?', (1,)) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76FC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76FC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76FC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76FC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
ERROR sqlalchemy.pool.impl.StaticPool:base.py:378 Exception terminating connection <AdaptedConnection <Connection(Thread-9, started daemon 10308)>>
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\pool\base.py", line 374, in _close_connection
self._dialect.do_terminate(connection)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 705, in do_terminate
self.do_close(dbapi_connection)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\engine\default.py", line 708, in do_close
dbapi_connection.close()
~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\dialects\sqlite\aiosqlite.py", line 275, in close
self.await_(self._connection.close())
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 132, in await_only
return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\sqlalchemy\util\_concurrency_py3k.py", line 196, in greenlet_spawn
value = await result
^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 178, in close
await self._execute(self._conn.close)
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 132, in _execute
return await future
^^^^^^^^^^^^
asyncio.exceptions.CancelledError: Cancelled via cancel scope 1f56c7c5e50 by <Task pending name='anyio.from_thread.BlockingPortal._call_func' coro=<BlockingPortal._call_func() running at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\from_thread.py:257> cb=[TaskGroup._spawn.<locals>.task_done() at c:\Users\bruno\scoop\apps\python\3.14.3\Lib\site-packages\anyio\_backends\_asyncio.py:805]>
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E1B70>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Connection object at 0x000001F56C7E1B70>) completed
-------------------------- Captured stdout teardown ---------------------------
returning exception Event loop is closed [aiosqlite]
2026-02-25T02:28:36.854839Z [debug ] executing <function connect.<locals>.connector at 0x000001F56C80B3D0> [aiosqlite]
2026-02-25T02:28:36.855080Z [debug ] operation <function connect.<locals>.connector at 0x000001F56C80B3D0> completed [aiosqlite]
2026-02-25T02:28:36.855367Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) [aiosqlite]
2026-02-25T02:28:36.855544Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:36.855803Z [debug ] executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'floor', 1, <built-in function floor>, deterministic=True) [aiosqlite]
2026-02-25T02:28:36.855965Z [debug ] operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'floor', 1, <built-in function floor>, deterministic=True) completed [aiosqlite]
2026-02-25T02:28:36.856350Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.856502Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.856743Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75E40>, 'PRAGMA main.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.856959Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75E40>, 'PRAGMA main.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.857267Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD75E40>) [aiosqlite]
2026-02-25T02:28:36.857430Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD75E40>) completed [aiosqlite]
2026-02-25T02:28:36.857697Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75E40>) [aiosqlite]
2026-02-25T02:28:36.857849Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75E40>) completed [aiosqlite]
2026-02-25T02:28:36.858166Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.858338Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.858697Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD77140>, 'PRAGMA temp.table_info("images")', ()) [aiosqlite]
2026-02-25T02:28:36.858890Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD77140>, 'PRAGMA temp.table_info("images")', ()) completed [aiosqlite]
2026-02-25T02:28:36.859153Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD77140>) [aiosqlite]
2026-02-25T02:28:36.859309Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD77140>) completed [aiosqlite]
2026-02-25T02:28:36.859535Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD77140>) [aiosqlite]
2026-02-25T02:28:36.859698Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD77140>) completed [aiosqlite]
2026-02-25T02:28:36.860047Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.860226Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.860499Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76840>, 'PRAGMA main.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.860679Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76840>, 'PRAGMA main.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.860959Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76840>) [aiosqlite]
2026-02-25T02:28:36.861129Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76840>) completed [aiosqlite]
2026-02-25T02:28:36.861485Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76840>) [aiosqlite]
2026-02-25T02:28:36.861655Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76840>) completed [aiosqlite]
2026-02-25T02:28:36.861991Z [debug ] executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.862142Z [debug ] operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.862420Z [debug ] executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76DC0>, 'PRAGMA temp.table_info("api_clients")', ()) [aiosqlite]
2026-02-25T02:28:36.862738Z [debug ] operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76DC0>, 'PRAGMA temp.table_info("api_clients")', ()) completed [aiosqlite]
2026-02-25T02:28:36.863172Z [debug ] executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76DC0>) [aiosqlite]
2026-02-25T02:28:36.863454Z [debug ] operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76DC0>) completed [aiosqlite]
2026-02-25T02:28:36.863866Z [debug ] executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76DC0>) [aiosqlite]
2026-02-25T02:28:36.864122Z [debug ] operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76DC0>) completed [aiosqlite]
2026-02-25T02:28:36.864629Z [debug ] executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.864781Z [debug ] operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.865144Z [debug ] executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E25C0>) [aiosqlite]
2026-02-25T02:28:36.865290Z [debug ] operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E25C0>) completed [aiosqlite]
2026-02-25T02:28:36.865860Z [debug ] Using proactor: IocpProactor [asyncio]
---------------------------- Captured log teardown ----------------------------
DEBUG aiosqlite:core.py:119 returning exception Event loop is closed
DEBUG aiosqlite:core.py:114 executing <function connect.<locals>.connector at 0x000001F56C80B3D0>
DEBUG aiosqlite:core.py:116 operation <function connect.<locals>.connector at 0x000001F56C80B3D0> completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'regexp', 2, <function SQLiteDialect_pysqlite.on_connect.<locals>.regexp at 0x000001F5476F7AB0>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'floor', 1, <built-in function floor>, deterministic=True)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method create_function of sqlite3.Connection object at 0x000001F56C7E25C0>, 'floor', 1, <built-in function floor>, deterministic=True) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75E40>, 'PRAGMA main.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD75E40>, 'PRAGMA main.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD75E40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD75E40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75E40>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD75E40>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD77140>, 'PRAGMA temp.table_info("images")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD77140>, 'PRAGMA temp.table_info("images")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD77140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD77140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD77140>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD77140>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76840>, 'PRAGMA main.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76840>, 'PRAGMA main.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76840>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76840>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76840>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76840>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method cursor of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76DC0>, 'PRAGMA temp.table_info("api_clients")', ())
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method execute of sqlite3.Cursor object at 0x000001F56CD76DC0>, 'PRAGMA temp.table_info("api_clients")', ()) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76DC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method fetchall of sqlite3.Cursor object at 0x000001F56CD76DC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76DC0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method close of sqlite3.Cursor object at 0x000001F56CD76DC0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method commit of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG aiosqlite:core.py:114 executing functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E25C0>)
DEBUG aiosqlite:core.py:116 operation functools.partial(<built-in method rollback of sqlite3.Connection object at 0x000001F56C7E25C0>) completed
DEBUG asyncio:proactor_events.py:633 Using proactor: IocpProactor
============================== warnings summary ===============================
tests/test_websocket.py::TestWSPipelineAuth::test_valid_token_accepted
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\_pytest\threadexception.py:82: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-2
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 117, in run
future.get_loop().call_soon_threadsafe(set_result, future, result)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\threading.py", line 1082, in _bootstrap_inner
self._context.run(self.run)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 120, in run
future.get_loop().call_soon_threadsafe(set_exception, future, e)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg))
tests/test_websocket.py::TestWSPipelineSyntheticDone::test_done_image_sends_synthetic
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\_pytest\threadexception.py:82: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-6
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 117, in run
future.get_loop().call_soon_threadsafe(set_result, future, result)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\threading.py", line 1082, in _bootstrap_inner
self._context.run(self.run)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 120, in run
future.get_loop().call_soon_threadsafe(set_exception, future, e)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg))
tests/test_websocket.py::TestWSPipelineSyntheticError::test_error_image_sends_synthetic
C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\_pytest\threadexception.py:82: PytestUnhandledThreadExceptionWarning: Exception in thread Thread-9
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 117, in run
future.get_loop().call_soon_threadsafe(set_result, future, result)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\bruno\scoop\apps\python\current\Lib\threading.py", line 1082, in _bootstrap_inner
self._context.run(self.run)
~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\site-packages\aiosqlite\core.py", line 120, in run
future.get_loop().call_soon_threadsafe(set_exception, future, e)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 872, in call_soon_threadsafe
self._check_closed()
~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bruno\scoop\apps\python\current\Lib\asyncio\base_events.py", line 550, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg))
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ===========================
ERROR tests/test_websocket.py::TestWSPipelineAuth::test_valid_token_accepted
ERROR tests/test_websocket.py::TestWSPipelineSyntheticDone::test_done_image_sends_synthetic
ERROR tests/test_websocket.py::TestWSPipelineSyntheticError::test_error_image_sends_synthetic
=================== 8 passed, 3 warnings, 3 errors in 2.72s ===================