row_id: 45192

Column Value
row_id 45192
time_created 2026-06-22 22:49:38.810808
endpoint https://usmall-catalog.shopfans.io/log/product_upload
params
body {"product": {"partial_update": 0, "variant_remote_code": null, "rating": 5.0, "rating_count": 1, "brand": "Armani Exchange", "seller_name": "A%7CXArmaniExchange", "author": null, "name": "Armani Exchange mens Ax1062 Hexagonal Prescription Eyewear Frames", "description": "The updated hexagonal shape of AX1062 makes it both fashionable and functional and the perfect style statement. Armani Exchange eyeglass frames feature lenses that need to be replaced with prescription lenses so you can enjoy clear vision. Young and contemporary, A|X Armani Exchange eyeglass frames redefine the essentials of Armani style through a sophisticated use of urban style. Armani Exchange eyeglass frames sold by authorized sellers, like Amazon, are eligible for all manufacturer warranties and guarantees. Click on the Armani Exchange link above the product title to shop the entire Armani Exchange sunglass and eyeglass assortment.\n \n \n \n Origin\n \n Imported\n \n \n \n About this item \nFRAME FEATURES: AX1062 eyeglass frames feature a hexagonal, matte black frame\n \nPRESCRIPTION READY EYEGLASS FRAMES: Armani Exchange eyeglass frames feature lenses that need to be replaced with prescription lenses so you can enjoy clear vision\n \nCASE & CLEANING CLOTH INCLUDED: Each pair of Armani Exchange eyeglass frames come with a cleaning cloth and case to clean and protect your eyewear from scratches and damage\n \nSee more \nAbout this item\n ", "data": {"dataFacets": []}, "categories": ["Clothing, Shoes & Jewelry > Men > Accessories > Sunglasses & Eyewear Accessories > Eyewear Frames"], "gender": "Men", "product_images": [], "market_id": 37, "remote_code": "B0FTWMQZV5", "is_lost": 0, "variants": [{"remote_code": "B0FTWMQZV5", "additional_upc": "B0CH3XKFMB", "remote_url": "https://www.amazon.com/dp/B0CH3XKFMB?th=1&psc=1", "delivery_days": 6, "weight": 70.0, "size": "NO_SIZE", "origin_color": "Matte Black/Demo Lens", "price": 50.6, "variant_images": ["https://m.media-amazon.com/images/I/51RC+an+nwL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51MhaAVKUEL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51y9u4w0+pL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51eHskh-q8L._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/512V1Kisj6L._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71FqgRms83L._AC_SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/51RC+an+nwL._AC_SL1500_._AC_SY300.jpg", "description": "Color: Matte Black/Demo Lens; Size: NO_SIZE", "colors": ["Matte Black/Demo Lens"], "upc": "", "name": "", "combo_key": "NO_SIZEMatte Black/Demo Lens"}, {"remote_code": "B0CH3XW82Z", "additional_upc": "B0CH3XW82Z", "remote_url": "https://www.amazon.com/dp/B0CH3XW82Z?th=1&psc=1", "delivery_days": 5, "weight": "", "size": "NO_SIZE", "origin_color": "Matte Gunmetal/Demo Lens", "price": 69.4, "variant_images": ["https://m.media-amazon.com/images/I/51+pfXEZkwL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51SMMJJqehL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51a8NtIuuYL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51Fl1jTyVaL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/51NZ2HF3RzL._AC_SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/51+pfXEZkwL._AC_SL1500_._AC_SY300.jpg", "description": "Color: Matte Gunmetal/Demo Lens; Size: NO_SIZE", "colors": ["Matte Gunmetal/Demo Lens"], "upc": "", "name": "", "combo_key": "NO_SIZEMatte Gunmetal/Demo Lens"}]}, "remote_url": "https://www.amazon.com/dp/B0FTWMQZV5?th=1&psc=1", "parsing_type": "refresh", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'B0FTWMQZV5' - 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 705, in log_product_upload upsert_product_hash( File "/opt/working_folder/api/logging_router/api/product_logging.py", line 368, in upsert_product_hash db.execute(stmt) 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 2256, in _execute_internal 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)