| body |
{"product": {"partial_update": 0, "variant_remote_code": null, "rating": 5.0, "rating_count": 1, "brand": "AITIME", "seller_name": "AITIME", "author": null, "name": "AITIME Portable Daily Contact Lens Organizer, Disposable Dispenser, Travel Color Storage Case Kit With Labeled R & L (Blue)", "description": "About this item \n Fine Quality & Durability: Daily contact lens organizer surface special treatment, dirt-resistant, durable and super easy to clean,the pouch has a nice soft smooth rubbery touch to it so it feels great on your hand. \n \n Segregation: Travel contact lens bag with 2 zippered pockets, the kit helps you to manage R & L lenses effortlessly. The L and R tabs at the top of the organizer can always remind you . \n \n Big Capacity: Contact lens pouch fits 40 lenses, up to 20 days' supply. Extra space for contact lens tool. \n \n Multifunctional : Disposable contact lens storage can also be used to store some small items such as glasses,hair clips, lip gloss, make up etc, good for organized when traveling. \n \n Smooth Zipper: Wide zipper design,fluently without snagging,easy to take out and put in. \n \n This product is protected by patent \n \n \n\u203a\n \n See more product details\n\n About this item Fine Quality & Durability: Daily contact lens organizer surface special treatment, dirt-resistant, durable and super easy to clean,the pouch has a nice soft smooth rubbery touch to it so it feels great on your hand. Segregation: Travel contact lens bag with 2 zippered pockets, the kit helps you to manage R & L lenses effortlessly. The L and R tabs at the top of the organizer can always remind you . Big Capacity: Contact lens pouch fits 40 lenses, up to 20 days' supply. Extra space for contact lens tool. Multifunctional : Disposable contact lens storage can also be used to store some small items such as glasses,hair clips, lip gloss, make up etc, good for organized when traveling. Smooth Zipper: Wide zipper design,fluently without snagging,easy to take out and put in. This product is protected by patent \n \u203a See more product details", "data": {"dataFacets": []}, "categories": ["Health & Household > Vision > Contact Lens Care > Cases"], "gender": "NO GENDER", "product_images": [], "market_id": 37, "remote_code": "B0D9BSQ6NV", "is_lost": 0, "variants": [{"remote_code": "B0D9BSQ6NV", "additional_upc": "B0D9BNVMZS", "remote_url": "https://www.amazon.com/dp/B0D9BNVMZS?th=1&psc=1", "delivery_days": 5, "weight": 90.0, "size": "NO_SIZE", "origin_color": "Blue", "price": 12.99, "variant_images": ["https://m.media-amazon.com/images/I/61hC1TqcNHL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71+UtcVjljL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/61Tui2p410L._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71IAR4xGFcL._AC_SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/61hC1TqcNHL._AC_SL1500_._AC_SY300.jpg", "description": "Color: Blue; Size: NO_SIZE", "colors": ["Blue"], "upc": "", "name": "", "combo_key": "NO_SIZEBlue"}, {"remote_code": "B0D9BN5849", "additional_upc": "B0D9BN5849", "remote_url": "https://www.amazon.com/dp/B0D9BN5849?th=1&psc=1", "delivery_days": 5, "weight": 120.0, "size": "NO_SIZE", "origin_color": "Gery", "price": 13.99, "variant_images": ["https://m.media-amazon.com/images/I/71C3+Ec5POL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71+UtcVjljL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71tful5gz6L._AC_SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/71C3+Ec5POL._AC_SL1500_._AC_SY300.jpg", "description": "Color: Gery; Size: NO_SIZE", "colors": ["Gery"], "upc": "", "name": "AITIME Portable Daily Contact Lens Organizer,Disposable Contact Lens Dispenser,Travel Color Contact Lens Storage Case Kit with Labeled R & L(Gery)", "combo_key": "NO_SIZEGery"}, {"remote_code": "B0D9BKW1FR", "additional_upc": "B0D9BKW1FR", "remote_url": "https://www.amazon.com/dp/B0D9BKW1FR?th=1&psc=1", "delivery_days": 5, "weight": "", "size": "NO_SIZE", "origin_color": "Green", "price": 13.99, "variant_images": ["https://m.media-amazon.com/images/I/61XEShMNpuL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/61RFNmkmM0L._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71+UtcVjljL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/61rsnLJ3zeL._AC_SL1500_.jpg", "https://m.media-amazon.com/images/I/71T5Y5J+6iL._AC_SL1500_.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://m.media-amazon.com/images/I/61XEShMNpuL._AC_SL1500_._AC_SY300.jpg", "description": "Color: Green; Size: NO_SIZE", "colors": ["Green"], "upc": "", "name": "AITIME Portable Daily Contact Lens Organizer, Disposable Dispenser, Travel Color Storage Case Kit With Labeled R & L (Green)", "combo_key": "NO_SIZEGreen"}]}, "remote_url": "https://www.amazon.com/dp/B0D9BSQ6NV?th=1&psc=1", "parsing_type": "refresh", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'B0D9BSQ6NV' - parsed successfully. additional_error_text=''"} |
| 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)
|