{"record":{"id":"6f76c6d78bcc638e","repo":"facebook/docusaurus","slug":"docusaurus-plugin-global-data-not-found-for-plu-6f76c6","errorCode":null,"errorMessage":"Docusaurus plugin global data not found for \"${pluginName}\" plugin with id \"${pluginId}\".","messagePattern":"Docusaurus plugin global data not found for \"(.+?)\" plugin with id \"(.+?)\"\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/docusaurus/src/client/exports/useGlobalData.ts","lineNumber":39,"sourceCode":"  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  }\n  return pluginInstanceGlobalData;\n}\n","sourceCodeStart":21,"sourceCodeEnd":45,"githubUrl":"https://github.com/facebook/docusaurus/blob/3f483e80e326cc646b54b83d564b3f0c4881b9a6/packages/docusaurus/src/client/exports/useGlobalData.ts#L21-L45","documentation":"Thrown by usePluginData when a specific plugin instance (pluginName + pluginId) has no global data and options.failfast is true. Same semantics as error 112 but scoped to one instance id (default 'default'). Indicates the named instance did not contribute global data.","triggerScenarios":"Calling usePluginData('docs', 'version-2.0', {failfast: true}) where that plugin instance does not exist or emitted no global data.","commonSituations":"Referencing a versioned docs instance id that was not enabled, multi-instance plugins where the requested id is wrong, or component rendered before instance data is ready.","solutions":["Verify the plugin instance id (use 'default' when only one instance exists).","Remove failfast to degrade gracefully when data is absent.","Check enabledInstances for the plugin to confirm the requested id is registered."],"exampleFix":"// before\nconst data = usePluginData('docs', 'old-version', {failfast: true});\n// after\nconst data = usePluginData('docs', 'default');","handlingStrategy":"validation","validationCode":"const all = useGlobalData();\nconst instance = all[pluginName]?.[pluginId];\n// only call usePluginData with failfast once `instance` is present","typeGuard":"function pluginInstanceHasData(all: GlobalData, name: string, id: string): boolean {\n  return Boolean(all?.[name]?.[id]);\n}","tryCatchPattern":null,"preventionTips":["Use 'default' as pluginId unless you have multiple instances.","Confirm versioned/multi-instance plugin ids before referencing them.","Drop failfast in defensive theme components."],"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"}