row_id: 45242

Column Value
row_id 45242
time_created 2026-06-22 22:50:12.913731
endpoint https://usmall-catalog.shopfans.io/log/product_upload
params
body {"product": {"rating": null, "rating_count": null, "brand": "SRAM", "name": "Force E1 Thread Mount 2x Chainring for Powermeter", "description": "What Our Gearhead\u00ae Experts Are Saying: \"Switching to the Force Thread Mount 2x Chainring Kit made my setup lighter and my shifts noticeably crisper. The Thread Mount system is seriously stiff, and the ability to quickly swap out chainrings means I can fine-tune my gearing for whatever race or ride is coming up. It's a major upgrade if you care about every watt.\"When performance matters, SRAM\u2019s Force Thread Mount 2x Chainring Kit gives us a serious edge. Developed as a key part of the Force AXS system, these chainrings use SRAM\u2019s innovative Thread Mount design to maximize stiffness and minimize weight. Whether hammering over rolling terrain or dialing in a TT setup, every shift feels tight, clean, and fast.Available in versatile combos\u201446/33t, 48/35t, and 50/37t\u2014these rings pair perfectly with SRAM Flattop chains for seamless 12-speed shifting. Plus, with SRAM\u2019s easy-to-use removal tool, swapping chainrings for different race profiles or training blocks is quick and painless, letting us stay focused on the ride ahead.", "data": {"dataFacets": []}, "categories": ["Bike > Bike Components > Road Components > Road Drivetrain > Road Cranksets & Chainrings"], "gender": "unisex", "product_images": [], "market_id": 17, "remote_code": "sram-force-e1-thread-mount-2x-chainring-for-powermeter", "is_lost": 0, "variants": [{"remote_code": "SRMD1D9-BLA-S463", "upc": "", "email_meta": "SRMD1D9", "remote_url": "https://www.backcountry.com/sram-force-e1-thread-mount-2x-chainring-for-powermeter?skid=SRMD1D9-BLA-S463", "size": "Black, 46,33t", "origin_color": "Black", "price": 275.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SRM/SRMD1D9/BLA.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SRM/SRMD1D9/BLA.jpg", "description": "Black, 46,33t", "colors": ["Black"]}, {"remote_code": "SRMD1D9-BLA-S483", "upc": "", "email_meta": "SRMD1D9", "remote_url": "https://www.backcountry.com/sram-force-e1-thread-mount-2x-chainring-for-powermeter?skid=SRMD1D9-BLA-S483", "size": "Black, 48,35t", "origin_color": "Black", "price": 275.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SRM/SRMD1D9/BLA.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SRM/SRMD1D9/BLA.jpg", "description": "Black, 48,35t", "colors": ["Black"]}]}, "remote_url": "https://www.backcountry.com/sram-force-e1-thread-mount-2x-chainring-for-powermeter", "parsing_type": "full", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'sram-force-e1-thread-mount-2x-chainring-for-powermeter' - parsed successfully. additional_error_text=''"}
status_code 500
error_text File "/opt/working_folder/middlewares/catch_errors_middleware/catch_500_errors.py", line 15, in dispatch response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 84, in call_next raise app_exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 70, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 83, in __call__ await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ raise exc File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ await self.app(scope, receive, sender) File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ raise e File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ await route.handle(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app response = await func(request) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 193, in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/starlette/concurrency.py", line 41, in run_in_threadpool return await anyio.to_thread.run_sync(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/anyio/to_thread.py", line 33, in run_sync return await get_asynclib().run_sync_in_worker_thread( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread return await future ^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 807, in run result = context.run(func, *args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/working_folder/api/logging_router/api/product_logging.py", line 495, in log_product_upload add_product_history(db, market_id, remote_code, json_data) File "/opt/working_folder/api/logging_router/api/product_logging.py", line 319, in add_product_history .first() ^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2728, in first return self.limit(1)._iter().first() # type: ignore ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/query.py", line 2827, in _iter result: Union[ScalarResult[_T], Result[_T]] = self.session.execute( ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2362, in execute return self._execute_internal( ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/session.py", line 2247, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/orm/context.py", line 305, in orm_execute_statement result = conn.execute( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1418, in execute return meth( ^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection return connection._execute_clauseelement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement ret = self._execute_context( ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context return self._exec_single_context( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context self._handle_dbapi_exception( File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "/usr/local/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute cursor.execute(statement, parameters)