| body |
{"product": {"rating": null, "rating_count": null, "brand": "Leatt", "name": "ReaFlex Pro Knee Guard", "description": "What Our Gearhead\u00ae Experts Are Saying:\"I was looking for a knee guard that\u2019s lightweight, slim, and still reliable on impact, and the ReaFlex Pro Knee Guard nailed it. The ReaFlex gel protection feels soft while riding but stiffens on impact, giving me confidence when tackling technical trails. The single sizing and silicone grip keep it in place without needing a thigh strap, and the pre-curved design fits great without any bunching. Plus, the ventilation is awesome on hot days.\"We know that when you\u2019re pushing your limits on the trail, your gear needs to move with you\u2014not against you. That\u2019s why we trust the ReaFlex Pro Knee Guard for all-day comfort and reliable protection. Built with ReaFlex impact gel, it stays soft and flexible while riding but instantly hardens during impact to shield your knee. The ultra-slim design makes it lightweight and low-profile, so you can forget you\u2019re wearing it\u2014until you really need it.Designed to stay put, this knee guard features silicone-printed, non-slip cuffs and a cupped knee grip, eliminating the need for a bulky thigh strap. The pre-curved design follows your leg\u2019s natural shape, providing a snug, ergonomic fit without compromising mobility. The combination of MoistureCool and AirMesh fabrics wicks away sweat, keeping you cool even when the ride heats up. From fast-flowing singletrack to rocky descents, the ReaFlex Pro delivers the protection you need without the bulk.", "data": {"dataFacets": [{"name": "Material", "values": ["Mesh"]}]}, "categories": ["Bike > Bike Helmets & Protection > Protection > Knee & Shin Pads"], "gender": "unisex", "product_images": [], "market_id": 17, "remote_code": "leatt-reaflex-pro-knee-guard", "is_lost": 0, "variants": [{"remote_code": "LBRI0HU-BLA-L", "upc": "", "email_meta": "LBRI0HU", "remote_url": "https://www.backcountry.com/leatt-reaflex-pro-knee-guard?skid=LBRI0HU-BLA-L", "size": "L", "origin_color": "Black", "price": 110.0, "variant_images": ["https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA_D2.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA_D1.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA.jpg", "description": "Black, L", "colors": ["Black"]}, {"remote_code": "LBRI0HU-BLA-S", "upc": "", "email_meta": "LBRI0HU", "remote_url": "https://www.backcountry.com/leatt-reaflex-pro-knee-guard?skid=LBRI0HU-BLA-S", "size": "S", "origin_color": "Black", "price": 110.0, "variant_images": ["https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA_D2.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA_D1.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/BLA.jpg", "description": "Black, S", "colors": ["Black"]}, {"remote_code": "LBRI0HU-FLI-S", "upc": "", "email_meta": "LBRI0HU", "remote_url": "https://www.backcountry.com/leatt-reaflex-pro-knee-guard?skid=LBRI0HU-FLI-S", "size": "S", "origin_color": "Flint", "price": 110.0, "variant_images": ["https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/FLI.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/FLI_D2.jpg", "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/FLI_D1.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/LBR/LBRI0HU/FLI.jpg", "description": "Flint, S", "colors": ["Flint"]}]}, "remote_url": "https://www.backcountry.com/leatt-reaflex-pro-knee-guard", "parsing_type": "full", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'leatt-reaflex-pro-knee-guard' - 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)
|