remotion-dev/remotion · error · Error
The `siteName` must not be `.` or `..`. You passed: ${siteNa
Error message
The `siteName` must not be `.` or `..`. You passed: ${siteName}. What it means
Thrown by validateSiteName() when siteName is exactly '.' or '..'. These are reserved path components that cannot be used as a GCS site name because they collide with directory traversal semantics, so the validator rejects them explicitly after the type check.
Source
Thrown at packages/cloudrun/src/shared/validate-site-name.ts:17
const VALID_SITE_NAME_RE = /^[-0-9a-zA-Z!_.*'()]+$/;
export const validateSiteName = (siteName: unknown) => {
if (typeof siteName === 'undefined') {
return;
}
if (typeof siteName !== 'string') {
throw new TypeError(
`The 'siteName' argument must be a string if provided, but is ${JSON.stringify(
siteName,
)}`,
);
}
if (siteName === '.' || siteName === '..') {
throw new Error(
'The `siteName` must not be `.` or `..`. You passed: ' + siteName + '.',
);
}
if (!VALID_SITE_NAME_RE.test(siteName)) {
throw new Error(
'The `siteName` must match the RegExp `/' +
VALID_SITE_NAME_RE.source +
'/`. You passed: ' +
siteName +
'. Check for invalid characters.',
);
}
};
View on GitHub (pinned to 78fe4bb3fd)
Solutions
- Use a concrete site name string (letters, digits, and the allowed punctuation) instead of '.' or '..'.
- Fix the defaulting logic so an empty input produces a real default name, not '.'.
- Validate upstream that the name is neither '.' nor '..'.
Example fix
// before const siteName = name || '.'; // after const siteName = name || 'remotion-default-site';
Defensive patterns
Strategy: validation
Validate before calling
if (siteName === '.' || siteName === '..') {
throw new Error('siteName must not be a reserved path component');
} Type guard
const isValidSiteNameShape = (v: unknown): v is string => typeof v === 'string' && v !== '.' && v !== '..';
Prevention
- Never default an empty site name to '.'; use a concrete default name.
- Avoid path-join logic that can yield '..'.
- Generate site names from a slugger that cannot produce reserved components.
When it happens
Trigger: Passing the literal strings '.' or '..' as siteName, usually from miscomputed defaulting logic or string trimming that reduced the input to one of these.
Common situations: A defaulting expression that falls back to '.' when the real name is empty; path-join logic that yields '..'; accidental trimming/normalization of the site name.
Related errors
- The `siteName` must match the RegExp `/^[-0-9a-zA-Z!_.*'()]+
- Bucket creation is required, but no region has been passed.
- Either cloudRunUrl or serviceName must be provided
- Either cloudRunUrl or serviceName must be provided, not both
- If determining Cloudrun Url from serviceName, region must be
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/14977d0f0456629e.
Report an issue: GitHub.