Filtering a single line text (list) metafield from within a metaobject using search and discovery

Topic summary

A user reports an error when attempting to filter products using Single line text (List) metafields nested within a metaobject via Shopify’s Search & Discovery app. The error message states: “Filters must include a valid text field.”

Setup details:

  • Product references a metaobject via a metaobject reference metafield
  • The metaobject contains both Single line text and Single line text (List) metafields
  • Filtering works correctly for non-list Single line text metafields within the metaobject
  • Filtering fails specifically for list-type metafields

Key observation: According to Shopify documentation, Single line text (List) metafields should be supported as filters, and metaobject references should function properly. The user suspects this may be a bug or undocumented limitation with how list-type metafields are handled when nested inside metaobjects.

A second user confirms experiencing a similar issue and has shared a screenshot. The discussion remains open with no resolution or explanation provided yet.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

I’m encountering an issue with the Search & Discovery app when trying to use metafields inside a metaobject as filters. Specifically:

  • I’ve created a metaobject that contains a Single line text (List) metafield, and this metaobject is directly referenced by a product using a metaobject reference metafield.
  • While I’m able to filter products using Single line text metafields (non-list) from within the metaobject, attempting to filter using Single line text (List) metafields results in the error:> Filters must include a valid text field.
  • According to the Shopify Help Center, Single line text (List) metafields are supported as filters, and metaobject references should also work. Since filtering works correctly for non-list metafields, I believe this might be a bug or a limitation with how list-type metafields are handled when nested inside a metaobject.

Here’s a brief summary of my setup:

  1. I have a product with a metafield that references a metaobject.
  2. The metaobject contains multiple metafields, including both Single line text and Single line text (List) types.
  3. I can filter by Single line text metafields in the metaobject without any issues.
  4. Attempting to filter by Single line text (List) metafields results in the above error.

Thank you in advance for your help!

1 Like

i have similar problem. i hope someone can explain this please.

I know this is an older thread but I was having the same issue and I finally figured it out.

The problem occurs when the search and discovery app is looking for a text input to name each of the filter values. You probably will look at your metaobject definition and say “but it has a single line text field right there!”

If you’re like me and your metaobject DOES have a valid text format as one of the defining fields, you lose your mind because what could possibly be wrong?? Here is the issue, and you can easily check if your metaobject has it or not before changing or deleting anything-

When you set up your metaobject you have to make sure your single line text field is set to ONE NOT LIST.

You can see at the bottom where I highlighted the image that I can choose the single line text as a filter, and the “display name” is the same as what I called my single line text value. IF YOURS SAYS “AUTO-GENERATED” YOU WILL NOT BE ABLE TO USE IT FOR A CUSTOM FILTER.

I personally think this happens because choosing the “list” option tells the program that there may be multiple text options for this specific value. The reason that the Search and Discovery app hates that is because you aren’t defining a singular name for this filter. Even if you only ever enter one text option, the programming still reads it as a multiple choice value. The program needs one concrete name in order to know you are referring to this thing in particular, so it won’t accept the multiple choice list as a valid answer.

I hope this keeps someone else from pulling their hair out for an hour like I did