remotion-dev/remotion · error
Combined 1D and 3D LUTs are not supported.
Error message
Combined 1D and 3D LUTs are not supported.
What it means
Thrown by the Studio's own cube-lut helper while scanning .cube headers: a valid .cube file must declare exactly one of LUT_1D_SIZE or LUT_3D_SIZE, defining the LUT type. The parser keeps a `type` variable, and this error fires when a size keyword for the other type appears after a type has already been established (e.g. both LUT_1D_SIZE and LUT_3D_SIZE present). It means the LUT file mixes 1D and 3D table declarations, which the parser does not support; the fix is to supply a LUT file that is purely 1D or purely 3D.
Solutions
- Split the file into separate 1D and 3D .cube LUTs and load them independently.
- Remove the size keyword that does not match the intended LUT type.
- Re-export the LUT with only one of LUT_1D_SIZE or LUT_3D_SIZE.
- Use a LUT tool that converts combined shaper+3D LUTs into a single 3D LUT.
Example fix
// before LUT_1D_SIZE 32 LUT_3D_SIZE 2 // after LUT_3D_SIZE 2
Defensive patterns
Strategy: validation
Validate before calling
const sizes = text.match(/^LUT_(1D|3D)_SIZE.*$/gm) || [];
if (new Set(sizes.map((s) => s.split('_')[1])).size > 1) throw new Error('Combined 1D and 3D LUT'); Type guard
null
Try / catch
try {
parseCubeLut(text);
} catch (err) {
if (err.message.includes('Combined 1D and 3D')) {
// split file into two LUTs or pick one type
}
} Prevention
- Keep 1D shaper and 3D table LUTs in separate files
- Inspect size keywords before loading
- Use converters that emit single-type .cube files
When it happens
Trigger: Loading a .cube file containing both LUT_1D_SIZE and LUT_3D_SIZE keywords.
Common situations: Hand-merged LUT files combining a 1D shaper and 3D table into one file; converters that emit both sections; editing mistakes.
Related errors
- Duplicate on line .
- Expected LUT colors, got more.
- Expected LUT colors, got .
- Expected LUT_1D_SIZE or LUT_3D_SIZE.
- Expected LUT_1D_SIZE or LUT_3D_SIZE before color data.
AI-assisted analysis of remotion-dev/remotion@46a3a6bf13 (2026-09-18).
Data as JSON: /api/errors/32190e0e9ccbbab1.
Report an issue: GitHub.
Appendix: source
Thrown at packages/studio/src/helpers/cube-lut.ts:52
if (offset > 0) {
throw new Error(`LUT header after color data on line ${index + 1}.`);
}
if (headers.has(keyword)) {
throw new Error(`Duplicate ${keyword} on line ${index + 1}.`);
}
headers.add(keyword);
}
if (keyword === 'TITLE' && titleMatch) {
title = titleMatch[1];
continue;
}
if (keyword === 'LUT_1D_SIZE' || keyword === 'LUT_3D_SIZE') {
if (type !== null) {
throw new Error('Combined 1D and 3D LUTs are not supported.');
}
type = keyword === 'LUT_1D_SIZE' ? '1d' : '3d';
size = numbers[0];
const maxSize = type === '1d' ? 65536 : 256;
if (
numbers.length !== 1 ||
!Number.isInteger(size) ||
size < 2 ||
size > maxSize
) {
throw new Error(`${keyword} must be an integer from 2 to ${maxSize}.`);
}
data = new Float32Array((type === '1d' ? size : size ** 3) * 3);
continue;
}
View on GitHub (pinned to 46a3a6bf13)