facebook/docusaurus · error

Docusaurus plugin global data not found for "${pluginName}"

Error message

Docusaurus plugin global data not found for "${pluginName}" plugin with id "${pluginId}".

What it means

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.

Source

Thrown at packages/docusaurus/src/client/exports/useGlobalData.ts:39

  const globalData = useGlobalData();
  const pluginGlobalData = globalData[pluginName];
  if (!pluginGlobalData && options.failfast) {
    throw new Error(
      `Docusaurus plugin global data not found for "${pluginName}" plugin.`,
    );
  }
  return pluginGlobalData;
}

export function usePluginData(
  pluginName: string,
  pluginId: string = DEFAULT_PLUGIN_ID,
  options: UseDataOptions = {},
): GlobalData[string][string] {
  const pluginGlobalData = useAllPluginInstancesData(pluginName);
  const pluginInstanceGlobalData = pluginGlobalData?.[pluginId];
  if (!pluginInstanceGlobalData && options.failfast) {
    throw new Error(
      `Docusaurus plugin global data not found for "${pluginName}" plugin with id "${pluginId}".`,
    );
  }
  return pluginInstanceGlobalData;
}

View on GitHub (pinned to 3f483e80e3)

Solutions

  1. Verify the plugin instance id (use 'default' when only one instance exists).
  2. Remove failfast to degrade gracefully when data is absent.
  3. Check enabledInstances for the plugin to confirm the requested id is registered.

Example fix

// before
const data = usePluginData('docs', 'old-version', {failfast: true});
// after
const data = usePluginData('docs', 'default');
Defensive patterns

Strategy: validation

Validate before calling

const all = useGlobalData();
const instance = all[pluginName]?.[pluginId];
// only call usePluginData with failfast once `instance` is present

Type guard

function pluginInstanceHasData(all: GlobalData, name: string, id: string): boolean {
  return Boolean(all?.[name]?.[id]);
}

Prevention

When it happens

Trigger: Calling usePluginData('docs', 'version-2.0', {failfast: true}) where that plugin instance does not exist or emitted no global data.

Common situations: 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.

Related errors


AI-assisted analysis of facebook/docusaurus@3f483e80e3 (2026-08-12). Data as JSON: /api/errors/6f76c6d78bcc638e. Report an issue: GitHub.