Automattic/mongoose · error · Error

You must pass a valid discriminator Schema

Error message

You must pass a valid discriminator Schema

What it means

Error "You must pass a valid discriminator Schema" thrown in Automattic/mongoose.

Source

Thrown at lib/helpers/model/discriminator.js:72

   * @param {Iterable<string>} i2
   */
  function* setIntersection(i1, i2) {
    const s1 = new Set(i1);
    for (const item of i2) {
      if (s1.has(item)) {
        yield item;
      }
    }
  }
}

/*!
 * ignore
 */

module.exports = function discriminator(model, name, schema, tiedValue, applyPlugins, mergeHooks, overwriteExisting) {
  if (!schema?.instanceOfSchema) {
    throw new Error('You must pass a valid discriminator Schema');
  }

  mergeHooks = mergeHooks == null ? true : mergeHooks;

  if (model.schema.discriminatorMapping &&
      !model.schema.discriminatorMapping.isRoot) {
    throw new Error('Discriminator "' + name +
        '" can only be a discriminator of the root model');
  }

  if (applyPlugins) {
    const applyPluginsToDiscriminators = get(model.base,
      'options.applyPluginsToDiscriminators', false) || !mergeHooks;
    // Even if `applyPluginsToDiscriminators` isn't set, we should still apply
    // global plugins to schemas embedded in the discriminator schema (gh-7370)
    model.base._applyPlugins(schema, {
      skipTopLevel: !applyPluginsToDiscriminators
    });

View on GitHub (pinned to 49cdab0136)

When it happens

Trigger: Thrown at lib/helpers/model/discriminator.js:72 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Automattic/mongoose@49cdab0136 (2026-08-21). Data as JSON: /api/errors/163a367188aa943c. Report an issue: GitHub.