drizzle-team/drizzle-orm · error · Error

Cannot pass undefined values to any set operator

Error message

Cannot pass undefined values to any set operator

What it means

Error "Cannot pass undefined values to any set operator" thrown in drizzle-team/drizzle-orm.

Source

Thrown at drizzle-orm/src/gel-core/dialect.ts:449

				clauseSql.append(sql` skip locked`);
			}
			lockingClauseSql.append(clauseSql);
		}
		const finalQuery =
			sql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}${lockingClauseSql}`;

		if (setOperators.length > 0) {
			return this.buildSetOperations(finalQuery, setOperators);
		}

		return finalQuery;
	}

	buildSetOperations(leftSelect: SQL, setOperators: GelSelectConfig['setOperators']): SQL {
		const [setOperator, ...rest] = setOperators;

		if (!setOperator) {
			throw new Error('Cannot pass undefined values to any set operator');
		}

		if (rest.length === 0) {
			return this.buildSetOperationQuery({ leftSelect, setOperator });
		}

		// Some recursive magic here
		return this.buildSetOperations(
			this.buildSetOperationQuery({ leftSelect, setOperator }),
			rest,
		);
	}

	buildSetOperationQuery({
		leftSelect,
		setOperator: { type, isAll, rightSelect, limit, orderBy, offset },
	}: { leftSelect: SQL; setOperator: GelSelectConfig['setOperators'][number] }): SQL {
		const leftChunk = sql`(${leftSelect.getSQL()}) `;

View on GitHub (pinned to b7862528fd)

Solutions

  1. Filter out undefined values before passing them to union/intersect/except, e.g. provide a fallback with coalesce() or skip the undefined operand.
  2. Ensure every query passed to the set operator is a defined select builder.

When it happens

Trigger: Calling union/intersect/except (Gel dialect) with an undefined argument, e.g. a conditionally built query that evaluated to undefined.

Common situations: Conditionally spread set-operator operands; helper returning undefined instead of a query; filtered array passed to unionAll.


AI-assisted analysis of drizzle-team/drizzle-orm@b7862528fd (2026-08-03). Data as JSON: /data/errors/5ae8142539f96727.json. Report an issue: GitHub.