row_id: 43088

Column Value
row_id 43088
time_created 2026-06-22 12:39:04.099656
endpoint https://usmall-catalog.shopfans.io/log/product_upload
params
body {"product": {"partial_update": 1, "variant_remote_code": "B0DL52BDLR", "rating": 5.0, "rating_count": 1, "brand": "HOSAILY", "seller_name": "b", "author": null, "name": "HOSAILY Peel Off Lip Liner Stain Tattoo, Long Lasting Waterproof Lip Stain Peel off, Tattoo Nude Lip Liner and Lip Gloss Combo, Non-Stick Cup Nourishing Lip Gloss Set Lipstick Makeup", "description": "Product Description:\n \nSize:\n11.7*4.5*1.9cm/4.6*1.8*0.7inches\n \nWeight:\n45g/1.6oz\n \nColor:\nAs the picture shows\n \nPackage Included:\npeel off lip liner and lip gloss\n \nSkin Type:\nAll Skin\n \nFeatures:\n 1.Special lip combo. \n 2.One lip gloss can bring you different lip makeup experience.\n 3.The vegan and cruelty-free formula, not only provides radiant color, but also helps to moisturize and condition the lips.\n 4.Long lasting and not easy to fade out.\n 5.Lip Gloss will keep your lips smooth, moisturized and say goodbye to dry, cracked lips.\n \nWarm Tips: \n \n 1.Keep the product out of reach of children.\n 2.Avoid direct sunlight exposure and store at room temperature.\n 3.All photos are taken in real products. Due to photography, display or other reasons, there may be slight differences between the picture and the real object. Please refer to the real object.\n 4.As most makeup, we highly recommend you to make a skin test before the first use.", "data": {"dataFacets": []}, "categories": ["Beauty & Personal Care > Makeup > Lips > Lip Liners"], "gender": "beauty_no_gender", "product_images": [], "market_id": 37, "remote_code": "B0D5345B3J", "is_lost": 0, "variants": [{"name": "HOSAILY Peel Off Lip Liner Stain Tattoo, Long Lasting Waterproof Lip Stain Peel off, Tattoo Pink Lip Liner and Lip Gloss Combo, Non-Stick Cup Nourishing Lip Gloss Set Lipstick Makeup", "remote_code": "B0DL52BDLR", "upc": "", "additional_upc": "B0DL52BDLR", "remote_url": "https://www.amazon.com/dp/B0DL52BDLR?th=1&psc=1", "delivery_days": 5, "weight": "", "size": "NO_SIZE", "origin_color": "Pink", "price": 9.99, "variant_images": ["https://m.media-amazon.com/images/I/61+kutpZiGL._SL1500_.jpg", "https://m.media-amazon.com/images/I/71PLKMntfpL._SL1500_.jpg", "https://m.media-amazon.com/images/I/7109QJDfLAL._SL1500_.jpg", "https://m.media-amazon.com/images/I/71hhQjYZHlL._SL1500_.jpg", "https://m.media-amazon.com/images/I/71aJosUfa4L._SL1500_.jpg", "https://m.media-amazon.com/images/I/71srQ5JmpEL._SL1500_.jpg", "https://m.media-amazon.com/images/I/71VKm94RNfL._SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/61+kutpZiGL._SL1500_._AC_SY300.jpg", "description": "Color: Pink; Size: NO_SIZE", "colors": ["Pink"], "combo_key": "NO_SIZEPink"}]}, "remote_url": "https://www.amazon.com/dp/B0D5345B3J?th=1&psc=1#B0DL52BDLR", "parsing_type": "basket", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'B0D5345B3J' - 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)