Temporarily disable the IFR flag featureFlagChangeStreamOptimizedUpdateLookup in 9.0.2 to avoid a getMore failure affecting updateLookup change streams on sharded clusters.
On a sharded cluster, an updateLookup change stream watching a collection in a database that exists only in a shard's local catalog (no config.databases entry, e.g. mongot's __mdb_internal_search materialized-view database, used for $vectorSearch auto-embedding) aborts its getMore with NamespaceNotFound instead of returning the update's post-image. This breaks any consumer of updateLookup for such a database; for mongot specifically, it prevents filter-only updates to autoEmbed $vectorSearch filter fields from reaching the index.
Note: a related fix (SERVER-134745) maps this same NamespaceNotFound to a null fullDocument instead of failing getMore, but that fix is not present in 9.0.2, and on its own would trade this failure for a silent-wrong-data bug for legitimate shard-local databases (SERVER-134952). Both issues are fixed for 9.1.0; disabling the flag here avoids both by falling back to the pre-9.0 updateLookup path.
The next 9.0 releases should have the IFR flag enabled again once the underlying fixes are backported.
- is related to
-
SERVER-134745 Sharded local change-stream updateLookup fails getMore with NamespaceNotFound when the database was dropped, instead of a null fullDocument
-
- Closed
-
-
SERVER-134952 updateLookup change stream returns null fullDocument for updates on a shard-local/uncataloged database
-
- Closed
-