We detected inconsistent data type changes in ShipHero’s GraphQL API over the weekend (December 6–7, 2025). These changes were not announced and have caused errors across different mutations due to mismatched expected types for the fields price and value.
Details of the Issue
1. Data Type Change in warehouse_product_update
Originally, our code used:
-
$price: String
-
$value: String
However, ShipHero seems to have updated their GraphQL schema recently. The mutation warehouse_product_update now expects:
-
price → Decimal
-
value → String
Because of this, our system was sending:
"price": 600
as a number, while the GraphQL schema previously expected a String. After the schema change, it now expects a Decimal. This caused the mutation to be rejected.
2. Inconsistent Types Across Mutations After the Change
After updating our implementation to use $price: Decimal for all mutations, we encountered new errors.
Not all ShipHero mutations use the same types:
-
warehouse_product_update
- Expects: price: Decimal
-
product_create
- Still expects: price: String
-
product_add_to_warehouse
- Also expects: price: String
This inconsistency causes failures depending on which mutation is being called.
Impact
-
The API behavior changed unexpectedly over the weekend.
-
Different mutations now require different types for the same fields (
priceandvalue). -
This inconsistency breaks existing integrations and forces conditional handling for each mutation type.
Request
Please confirm:
-
Whether these data type changes were intentional.
-
What the correct and official expected types are for:
-
warehouse_product_update -
product_create -
product_add_to_warehouse
-
-
Whether ShipHero plans to standardize these fields to avoid future breaking changes.