| body |
{"product": {"rating": null, "rating_count": null, "brand": "Yeti Cycles", "name": "SB120 T2 Eagle 90/X0 Mountain Bike", "description": "What Our Gearhead\u00ae Experts Are Saying:\"The SB120 T2 puts Yeti's TURQ carbon Switch Infinity suspension under you at a price that makes sense. The mixed drivetrain covers every climb, and the Fox Factory suspension is the real deal. It's a trail bike that punches hard on descents and doesn't make you pay for it on the way back up.\"Who It's ForTrail riders who want a capable full-suspension bike without the flagship price tag.This build suits intermediate to advanced riders looking for a high-performance trail bike with proven suspension and a reliable drivetrain. It rewards riders who spend most of their time on flowy singletrack and technical trail but want confidence when things get rowdy.What It's ForAll-day trail riding on punchy climbs and demanding descents.The SB120 T2 is built for climbing hard and descending harder. This bike handles both without compromise. It thrives on technical trail and flow alike.Why We Like ItTURQ carbon efficiency with Fox Factory suspension.Yeti's TURQ carbon frame with Switch Infinity V2 suspension delivers a ride that feels both efficient and composed. Fox Factory 36 SL fork and Float rear shock provide plush, controlled travel from top to bottom. The mixed X0/90 drivetrain shifts reliably across every gradient.Heads up! We do our best to keep bike specs and images current, but occasional component changes can happen without warning, and sometimes the photos might not show the exact build you'll receive. If you want to double-check the details, our Gearheads are always here to help.", "data": {"dataFacets": []}, "categories": ["Bike > Bikes & Frames > Mountain Bikes > XC Full Suspension Bikes > Complete XC Full Suspension Bikes"], "gender": "unisex", "product_images": [], "market_id": 17, "remote_code": "yeti-cycles-sb120-t2-eagle-90-x0-mountain-bike", "is_lost": 0, "variants": [{"remote_code": "YTIR1OV-RAW-L", "upc": "", "email_meta": "YTIR1OV", "remote_url": "https://www.backcountry.com/yeti-cycles-sb120-t2-eagle-90-x0-mountain-bike?skid=YTIR1OV-RAW-L", "size": "L", "origin_color": "Raw", "price": 7100.0, "variant_images": ["https://www.backcountry.com/images/items/1200/YTI/YTIR1OV/RAW.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/YTI/YTIR1OV/RAW.jpg", "description": "Raw, L", "colors": ["Raw"]}, {"remote_code": "YTIR1OV-RAW-XL", "upc": "", "email_meta": "YTIR1OV", "remote_url": "https://www.backcountry.com/yeti-cycles-sb120-t2-eagle-90-x0-mountain-bike?skid=YTIR1OV-RAW-XL", "size": "XL", "origin_color": "Raw", "price": 7100.0, "variant_images": ["https://www.backcountry.com/images/items/1200/YTI/YTIR1OV/RAW.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/YTI/YTIR1OV/RAW.jpg", "description": "Raw, XL", "colors": ["Raw"]}]}, "remote_url": "https://www.backcountry.com/yeti-cycles-sb120-t2-eagle-90-x0-mountain-bike", "parsing_type": "full", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'yeti-cycles-sb120-t2-eagle-90-x0-mountain-bike' - 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 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)
|