Skip to content

Filter.or over a missing field breaks the whole query silently #2952

Open

Description

@trullock

[REQUIRED] Step 2: Describe your environment

Live.
It works in the emulator.

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

If one or more of the filters inside a Filter.or queries a non-existent property, then the whole Filter.or returns false, returning no results, even if the other filters (e.g. Age in the example below) do match.
No errors or warnings are raised, the query "fails" silently.

Relevant Code:

	let snap = await firestore.collection('MyThing').where(
		Filter.or(
			Filter.where('age', '>=', 18),
			Filter.where('nonExistentProperty', '>=', 123),
		)
	).get()

I get the limitations on querying non-existent fields, but the whole thing shouldn't fail silently.

Either the other filters should still work, or there should be an error raised.

This doesn't occurr on the emulator, so was only a prod issue that it just took me several hours to track down.

At least make the emulator mirror live!

Activity

  1. google-oss-bot commented on Jul 27, 2025

    @google-oss-bot

    I found a few problems with this issue:

    • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
    • This issue does not seem to follow the issue template. Make sure you provide all the required information.
  2. JulindM commented on Dec 24, 2025

    @JulindM

    The worst thing about this, is that you can spend hours debugging like I did, only to find out that you were right all along and it's the backend that is returning "bad" data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions