Hi everyone,
I’ve been trying to update weight conditions on a delivery profile via the deliveryProfileUpdate GraphQL mutation and running into what appears to be a bug. Hoping someone can confirm or suggest a workaround.
The problem
When using conditionsToUpdate inside methodDefinitionsToUpdate, the mutation returns success with no userErrors, but the condition values never change. Even more strangely, the condition ID increments with every mutation call, suggesting the API is silently replacing the condition with a new one instead of updating it.
Similarly, using conditionsToDelete at the root DeliveryProfileInput level also returns success but the conditions remain untouched.
What I tried
-
conditionsToUpdatewithid,criteria,criteriaUnit,operator,field— returns success, no change -
conditionsToDeleteat root profile level +weightConditionsToCreate— delete returns success but condition still exists, thenweightConditionsToCreatefails with “Method definition cannot save more than two conditions” -
Confirmed the correct condition ID each time by querying before every mutation
Reproduction steps
Query current conditions:
{
deliveryProfile(id: "gid://shopify/DeliveryProfile/YOUR_ID") {
profileLocationGroups {
locationGroupZones(first: 10) {
nodes {
methodDefinitions(first: 10) {
nodes {
id
name
methodConditions {
id
operator
conditionCriteria {
... on Weight {
value
unit
}
}
}
}
}
}
}
}
}
}
Then attempt to update:
mutation deliveryProfileUpdate {
deliveryProfileUpdate(
id: "gid://shopify/DeliveryProfile/YOUR_ID"
profile: {
locationGroupsToUpdate: [{
id: "gid://shopify/DeliveryLocationGroup/YOUR_ID"
zonesToUpdate: [{
id: "gid://shopify/DeliveryZone/YOUR_ID"
methodDefinitionsToUpdate: [{
id: "gid://shopify/DeliveryMethodDefinition/YOUR_ID"
conditionsToUpdate: [{
id: "gid://shopify/DeliveryCondition/YOUR_CONDITION_ID"
field: TOTAL_WEIGHT
operator: GREATER_THAN_OR_EQUAL_TO
criteria: 100.0
criteriaUnit: "GRAMS"
}]
}]
}]
}]
}
) {
profile {
id
name
}
userErrors {
field
message
}
}
}
Result: userErrors: [], condition ID increments, criteria value unchanged.
Expected behavior
The condition criteria value should update to 100.0 GRAMS.
Actual behavior
Condition is silently replaced with a new ID but same original values. No errors returned.
Environment
-
API version: 2026-01 (also tested on latest)
-
Mutation:
deliveryProfileUpdate -
Affected fields:
conditionsToUpdate,conditionsToDelete
Has anyone successfully updated delivery conditions via the API? Is there a working workaround? Any help appreciated.
Thanks!