In the Admin GraphQL API version 2026-07, it is impossible to remove all product selections from a collection, in the absence of other kinds of sources and inclusions. Here are the steps I went through:
-
I create a collection with collectionCreate and don’t specify any sources, proving it is possible to have a collection with no sources.
-
Then I create a source via the collectionUpdate’s collection.sourcesToCreate field, specifying one product in inclusion.selections. Resultant state:
-
Now I want to remove that product from the collection.
-
I make a collectionUpdate request and specify the product in sourcesToUpdate.condition.inclusion.selectionsToRemove, but get the error “A condition based source must have at least one product selection or condition”.
-
I make a collectionUpdate request and try to delete the whole source by specifying its ID in collection.sourcesToDelete, bug get the same error: “A condition based source must have at least one product selection or condition”. That message doesn’t make sense in this context.
-
-
I wonder if it’s the fact that I’m deleting the last source on the collection, so I add another source in the same way as the first. At that point I am able to delete the first source. But I’m back where I started.
-
There is no other way that I’m aware of to delete a source from a collection via the API, and I shouldn’t have to delete the whole collection, so I try removing the product selection from the collection in the Shopify Admin UI. It works. I query the collection in GraphQL and there is still one source on it, but with no selections.
So I think there are two bugs or at least one bug and one strange inconsistency:
- Either the Admin GraphQL API should allow the last remaining source on a collection to be deleted, or the message returned by collectionUpdate when trying to do so should say something like “After a source has been added to it, a collection must always have at least one source” instead of “A condition based source must have at least one product selection or condition”.
- Either deleting the last remaining product selection from a collection in the Admin UI should delete the associated source (assuming no condition-based inclusions exist on it), or the Admin GraphQL API should allow the last remaining selection on such a source to be deleted via selectionsToRemove.
Am I missing something? I don’t want to have to use exclusions or add a junk condition.


