| body |
{"product": {"rating": null, "rating_count": null, "brand": "Salsa", "name": "Spearfish C Eagle 90 Mountain Bike", "description": "What Our Gearhead\u00ae Experts Are Saying:\"I\u2019d put this build at the top of the list for riders who want a modern endurance XC bike with minimal compromises. The Transmission drivetrain is insanely precise under load, and paired with the Split Pivot suspension it feels efficient no matter how tired you get. It\u2019s the bike I\u2019d choose for long training blocks, stage races, or any ride where consistency really matters.\"We trust the Spearfish C Eagle 90 Transmission Bike when the ride plan stretches from sunrise to well past when legs feel fresh. Built by Salsa for endurance XC racing and all-day trail mileage, this bike keeps efficiency high and fatigue low when the hours stack up. Whether we\u2019re lining up for a marathon race or settling into a multi-day route, the Spearfish delivers a calm, predictable ride that lets us stay focused on forward progress.Underneath that smooth ride is Salsa\u2019s Split Pivot suspension platform, offering adjustable rear travel and active braking performance that shines on technical climbs and long descents alike. The carbon frame balances stiffness and comfort, while thoughtful frame features like top tube mounts, multiple bottle positions, and molded protection support self-supported adventures as well as race-day efficiency.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"], "gender": "unisex", "product_images": [], "market_id": 17, "remote_code": "salsa-spearfish-c-eagle-90-mountain-bike", "is_lost": 0, "variants": [{"remote_code": "SLAB03N-GRAGRA-L", "upc": "", "email_meta": "SLAB03N", "remote_url": "https://www.backcountry.com/salsa-spearfish-c-eagle-90-mountain-bike?skid=SLAB03N-GRAGRA-L", "size": "L", "origin_color": "Graphite Gray", "price": 5799.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D10.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D9.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D8.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D7.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D6.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "description": "Graphite Gray, L", "colors": ["Graphite Gray"]}, {"remote_code": "SLAB03N-GRAGRA-M", "upc": "", "email_meta": "SLAB03N", "remote_url": "https://www.backcountry.com/salsa-spearfish-c-eagle-90-mountain-bike?skid=SLAB03N-GRAGRA-M", "size": "M", "origin_color": "Graphite Gray", "price": 5799.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D10.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D9.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D8.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D7.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D6.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "description": "Graphite Gray, M", "colors": ["Graphite Gray"]}, {"remote_code": "SLAB03N-GRAGRA-S", "upc": "", "email_meta": "SLAB03N", "remote_url": "https://www.backcountry.com/salsa-spearfish-c-eagle-90-mountain-bike?skid=SLAB03N-GRAGRA-S", "size": "S", "origin_color": "Graphite Gray", "price": 5799.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D10.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D9.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D8.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D7.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D6.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "description": "Graphite Gray, S", "colors": ["Graphite Gray"]}, {"remote_code": "SLAB03N-GRAGRA-XL", "upc": "", "email_meta": "SLAB03N", "remote_url": "https://www.backcountry.com/salsa-spearfish-c-eagle-90-mountain-bike?skid=SLAB03N-GRAGRA-XL", "size": "XL", "origin_color": "Graphite Gray", "price": 5799.0, "variant_images": ["https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D10.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D9.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D8.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D7.jpg", "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA_D6.jpg"], "stock_count": 1, "data": ["transfer"], "image_url": "https://www.backcountry.com/images/items/1200/SLA/SLAB03N/GRAGRA.jpg", "description": "Graphite Gray, XL", "colors": ["Graphite Gray"]}]}, "remote_url": "https://www.backcountry.com/salsa-spearfish-c-eagle-90-mountain-bike", "parsing_type": "full", "finalize": false, "parsing_code": 200, "parsing_text": "[200] Success: Item: 'salsa-spearfish-c-eagle-90-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)
|