Storefront API predictiveSearch cannot return collections published only to a Sales Channel app

Hi everyone,

We have a public app, which has been converted into a Sales Channel app and published on the Shopify App Store. After a merchant installs our app, it appears correctly under their Sales Channels list.

However, we encountered a problem related to this Shopify Storefront GraphQL query: predictiveSearch predictiveSearch - Storefront API

Scenario

1. In the Shopify admin → Collection → Publishing Management
2. We publish the collection only to our Sales Channel, not to the Online Store.
3. We use the predictiveSearch query above with X-Shopify-Storefront-Access-Token that belongs to our sales channel app to search for the collection

Problem

Even though the collection is published to our Sales Channel, the predictiveSearch query does not return the collection even when the X-Shopify-Storefront-Access-Token that we use for the query belongs to our Sales Channel app.

But if the same collection is also published to Online Store, then the query returns data as expected.

Question

• Is this a limitation or bug of the Storefront GraphQL API, specifically the predictiveSearch query?
• Or is predictiveSearch intentionally designed to return only resources that are assigned to and belong to the Online Store sales channel and then this is the expected behavior? 

Any clarification from Shopify staff or anyone who has handled similar behavior would be greatly appreciated.

Thanks in advance!

Specific example:

  • Create a collection named “Test predictiveSearch query” and assign it only to our sales channel

  • Query used has the word “Test” that is a part of the collection name:

query PredictiveSearch($language: LanguageCode, $country: CountryCode)
@inContext(language: $language, country: $country) 
{
    predictiveSearch(query: "test") {
    collections {
      id
      handle
      title
      description
      descriptionHtml
      onlineStoreUrl
      updatedAt
    }
  }
}
  • Variables used (use the default language and country of the store:
{
  "language": "EN",
  "country": "GB"
}
  • Response received → Do not have the collection above:
{
    "data": {
        "predictiveSearch": {
            "collections": []
        }
    },
    "extensions": {
        "context": {
            "country": "GB",
            "language": "EN"
        },
        "cost": {
            "requestedQueryCost": 2
        }
    }
}