{"record":{"id":"e952ee7ca5e45d74","repo":"remotion-dev/remotion","slug":"null-has-been-removed-as-of-remotion-v4-0-228-t","errorCode":null,"errorMessage":"<Null> has been removed as of Remotion v4.0.228. The native clipping APIs were experimental and subject to removal at any time. We removed them because they were sparingly used and made rendering often slower rather than faster.","messagePattern":"<Null> has been removed as of Remotion v4\\.0\\.228\\. The native clipping APIs were experimental and subject to removal at any time\\. We removed them because they were sparingly used and made rendering often slower rather than faster\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/Null.tsx","lineNumber":5,"sourceCode":"/**\n * @deprecated <Null /> has been removed as of Remotion v4.0.228. The native clipping APIs were experimental and subject to removal at any time. We removed them because they were sparingly used and made rendering often slower rather than faster.\n */\nexport const Null: React.FC = () => {\n\tthrow new Error(\n\t\t'<Null> has been removed as of Remotion v4.0.228. The native clipping APIs were experimental and subject to removal at any time. We removed them because they were sparingly used and made rendering often slower rather than faster.',\n\t);\n};\n","sourceCodeStart":1,"sourceCodeEnd":9,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/Null.tsx#L1-L9","documentation":"Thrown unconditionally by the body of <Null> on every render. <Null> was the public entry point of the experimental native clipping API, removed in Remotion v4.0.228 because it was sparingly used and frequently made rendering slower. The component is still exported (deprecated) so that users with imports see a clear removal message instead of a generic 'undefined is not a component' error.","triggerScenarios":"Rendering `<Null />` anywhere in a composition; importing and using <Null> after upgrading past v4.0.228; following an outdated tutorial or example that still uses <Null>.","commonSituations":"Upgrading Remotion past v4.0.228 with code that still references <Null>; copy-pasted code from an old blog post or Stack Overflow answer; generated code from an LLM trained on the old API.","solutions":["Remove all <Null /> usages from your composition.","If you used <Null> to clip children, switch to <Sequence> with cropLeft/cropRight/cropTop/cropBottom, or to absolutely-positioned children inside an <AbsoluteFill> with overflow hidden.","Update imports to drop <Null> from @remotion/core.","Consult the migration note in the message: native clipping was experimental and removed for performance reasons."],"exampleFix":"// before\n<Null>\n  <AbsoluteFill>...</AbsoluteFill>\n</Null>\n// after\n<AbsoluteFill style={{overflow: 'hidden'}}>\n  ...\n</AbsoluteFill>","handlingStrategy":"validation","validationCode":"// Grep your codebase before upgrading past v4.0.228\n// import {Null} from '@remotion/core';\n// Remove every <Null /> usage. Fail CI if any reference remains.","typeGuard":null,"tryCatchPattern":"try {\n  // run a pre-upgrade codemod that removes <Null> references\n} catch (err) {\n  // surface to upgrade notes\n  throw err;\n}","preventionTips":["Search the codebase for `<Null` and `Null` imports before upgrading Remotion past v4.0.228.","Replace clipping use cases with <Sequence> crop props or CSS overflow:hidden.","Keep your Remotion version pinned and read release notes for breaking removals.","Add an eslint rule banning the import name 'Null' from '@remotion/core'."],"tags":["null","removed-api","deprecation","v4","migration","breaking-change"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}