{"record":{"id":"49495c172def95fd","repo":"facebook/docusaurus","slug":"docusaurus-plugin-global-data-not-found-for-plu","errorCode":null,"errorMessage":"Docusaurus plugin global data not found for \"${pluginName}\" plugin.","messagePattern":"Docusaurus plugin global data not found for \"(.+?)\" plugin\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/docusaurus/src/client/exports/useGlobalData.ts","lineNumber":24,"sourceCode":" */\n\nimport useDocusaurusContext from './useDocusaurusContext';\nimport {DEFAULT_PLUGIN_ID} from './constants';\nimport type {GlobalData, UseDataOptions} from '@docusaurus/types';\n\nexport default function useGlobalData(): GlobalData {\n  const {globalData} = useDocusaurusContext();\n  return globalData;\n}\n\nexport function useAllPluginInstancesData(\n  pluginName: string,\n  options: UseDataOptions = {},\n): GlobalData[string] | undefined {\n  const globalData = useGlobalData();\n  const pluginGlobalData = globalData[pluginName];\n  if (!pluginGlobalData && options.failfast) {\n    throw new Error(\n      `Docusaurus plugin global data not found for \"${pluginName}\" plugin.`,\n    );\n  }\n  return pluginGlobalData;\n}\n\nexport function usePluginData(\n  pluginName: string,\n  pluginId: string = DEFAULT_PLUGIN_ID,\n  options: UseDataOptions = {},\n): GlobalData[string][string] {\n  const pluginGlobalData = useAllPluginInstancesData(pluginName);\n  const pluginInstanceGlobalData = pluginGlobalData?.[pluginId];\n  if (!pluginInstanceGlobalData && options.failfast) {\n    throw new Error(\n      `Docusaurus plugin global data not found for \"${pluginName}\" plugin with id \"${pluginId}\".`,\n    );\n  }","sourceCodeStart":6,"sourceCodeEnd":42,"githubUrl":"https://github.com/facebook/docusaurus/blob/3f483e80e326cc646b54b83d564b3f0c4881b9a6/packages/docusaurus/src/client/exports/useGlobalData.ts#L6-L42","documentation":"Thrown by useAllPluginInstancesData when the named plugin has no entry in global data AND options.failfast is true. Without failfast it silently returns undefined. Global data is populated by plugins during the build and serialized for the browser, so absence means the plugin did not run or did not emit global data.","triggerScenarios":"Calling useAllPluginInstancesData('foo', {failfast: true}) where 'foo' is not an enabled plugin or has not yet produced global data at render time.","commonSituations":"Theme override reading data from a plugin that was disabled in config, typo'd plugin name, or component rendered during SSR before plugin global data is attached.","solutions":["Confirm the plugin is enabled and actually emits global data (check the generated globalData.json).","Drop the failfast option to tolerate absence gracefully.","Fix typos in the pluginName argument to match the registered plugin id.","If conditionally enabling the plugin, guard the component that consumes its data behind the same condition."],"exampleFix":"// before\nconst data = useAllPluginInstancesData('myplugin', {failfast: true});\n// after\nconst data = useAllPluginInstancesData('myplugin');\nif (!data) return null;","handlingStrategy":"validation","validationCode":"const data = useGlobalData();\nconst exists = Boolean(data[pluginName]);\n// only call with failfast once `exists` is true","typeGuard":"function pluginHasGlobalData(all: GlobalData, name: string): all is GlobalData & Record<typeof name, unknown> {\n  return Boolean(all[name]);\n}","tryCatchPattern":null,"preventionTips":["Omit failfast unless you are certain the plugin is enabled.","Guard data-consuming components behind the same condition that enables the plugin.","Verify generated globalData.json during the build for the expected plugin key."],"tags":["react","plugin-data","client","global-data"],"backgroundTag":null,"analyzedSha":"3f483e80e326cc646b54b83d564b3f0c4881b9a6","analyzedAt":"2026-08-12T13:25:04.382Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}