remotion-dev/remotion · error · TypeError

parameter 'memorySizeInMb' must be a number, got a ${typeof

Error message

parameter 'memorySizeInMb' must be a number, got a ${typeof memorySizeInMb}

What it means

First guard in validateMemorySize: memorySizeInMb must be of type 'number'. Subsequent checks (NaN, finite, range 512-10240, integer) only run after this passes. Any non-number input throws a TypeError reporting the actual typeof.

Source

Thrown at packages/lambda-client/src/validate-memory-size.ts:5

import {MAX_MEMORY, MIN_MEMORY} from './constants';

export const validateMemorySize = (memorySizeInMb: unknown) => {
	if (typeof memorySizeInMb !== 'number') {
		throw new TypeError(
			`parameter 'memorySizeInMb' must be a number, got a ${typeof memorySizeInMb}`,
		);
	}

	if (Number.isNaN(memorySizeInMb)) {
		throw new TypeError(`parameter 'memorySizeInMb' must not be NaN, but is`);
	}

	if (!Number.isFinite(memorySizeInMb)) {
		throw new TypeError(
			`parameter 'memorySizeInMb' must be finite, but is ${memorySizeInMb}`,
		);
	}

	if (memorySizeInMb < MIN_MEMORY || memorySizeInMb > MAX_MEMORY) {
		throw new TypeError(
			`parameter 'memorySizeInMb' must be between ${MIN_MEMORY} and ${MAX_MEMORY}, but got ${memorySizeInMb}`,
		);

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Pass memorySizeInMb as a number literal (e.g., 2048).
  2. Coerce string inputs with Number() before calling, after confirming parseability.
  3. Fix JSON/env config to provide an unquoted numeric value.

Example fix

// before
validateMemorySize(process.env.MEMORY_SIZE); // '2048' (string)

// after
validateMemorySize(Number(process.env.MEMORY_SIZE));
Defensive patterns

Strategy: type-guard

Validate before calling

if (typeof memorySizeInMb !== 'number') {
  throw new TypeError(`memorySizeInMb must be a number, got ${typeof memorySizeInMb}`);
}
validateMemorySize(memorySizeInMb);

Type guard

const isNumber = (v: unknown): v is number => typeof v === 'number';

Prevention

When it happens

Trigger: Calling validateMemorySize (directly or via deployFunction/render APIs that validate memory) with a non-number value, e.g. a string '2048', undefined, null, or an object.

Common situations: Reading memorySizeInMb from env/CLI as a string and passing it uncoerced; defaulting to undefined; JSON config with the memory value quoted.

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/0e9b6ef2d288d113. Report an issue: GitHub.