{"record":{"id":"bec6de724d68213c","repo":"remotion-dev/remotion","slug":"usemounttime-must-be-used-within-a-loglevelprovide","errorCode":null,"errorMessage":"useMountTime must be used within a LogLevelProvider","messagePattern":"useMountTime must be used within a LogLevelProvider","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/core/src/log-level-context.tsx","lineNumber":27,"sourceCode":"\nexport const LogLevelContext = createContext<LoggingContextValue>({\n\tlogLevel: 'info',\n\tmountTime: 0,\n});\n\nexport const useLogLevel = (): LogLevel => {\n\tconst {logLevel} = React.useContext(LogLevelContext);\n\tif (logLevel === null) {\n\t\tthrow new Error('useLogLevel must be used within a LogLevelProvider');\n\t}\n\n\treturn logLevel;\n};\n\nexport const useMountTime = (): number => {\n\tconst {mountTime} = React.useContext(LogLevelContext);\n\tif (mountTime === null) {\n\t\tthrow new Error('useMountTime must be used within a LogLevelProvider');\n\t}\n\n\treturn mountTime;\n};\n","sourceCodeStart":9,"sourceCodeEnd":32,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/core/src/log-level-context.tsx#L9-L32","documentation":"Thrown by the useMountTime() hook when the LogLevelContext value has mountTime === null. Like useLogLevel, the context default supplies 0, so this fires when a LogLevelProvider is given an incomplete value whose mountTime is explicitly null rather than when the hook is used outside any provider.","triggerScenarios":"Rendering a LogLevelProvider whose value carries mountTime: null; a custom provider that has not yet recorded the mount timestamp; resetting context state to null.","commonSituations":"Custom providers that populate mountTime asynchronously; partial context objects passed to the provider; resetting context state on navigation.","solutions":["Ensure the provider's value.mountTime is a number (e.g. performance.now() or Date.now()).","Default mountTime to 0 until the real value is available instead of null.","Use Remotion's built-in LogLevelProvider to supply both logLevel and mountTime."],"exampleFix":"// before\n<LogLevelContext.Provider value={{logLevel: 'info', mountTime: null}}>\n  <App/>\n</LogLevelContext.Provider>\n// after\n<LogLevelContext.Provider value={{logLevel: 'info', mountTime: Date.now()}}>\n  <App/>\n</LogLevelContext.Provider>","handlingStrategy":"validation","validationCode":"const mountTime = useMountTimeSafe();\n// where useMountTimeSafe reads context and falls back to 0 when null","typeGuard":"const isMountTime = (v: unknown): v is number =>\n  typeof v === 'number' && Number.isFinite(v);","tryCatchPattern":null,"preventionTips":["Always supply a numeric mountTime in your LogLevelProvider value.","Default to 0 until the real timestamp is available instead of null.","Use Remotion's built-in LogLevelProvider to provide both context fields."],"tags":["react","context","log-level","hooks"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}