facebook/docusaurus · error · Error

The path to the sidebar file does not exist at "${path.relat

Error message

The path to the sidebar file does not exist at "${path.relative(context.siteDir, sidebarFilePath)}".
Please set the docs "sidebarPath" field in your config file to:
- a sidebars path that exists
- false: to disable the sidebar
- undefined: for Docusaurus to generate it automatically

What it means

Thrown by getVersionMetadataPaths() but only for the CURRENT version. If sidebarFilePath is a string and the file does not exist (fs.pathExists is false), the build fails. Versioned sidebars are exempt (a missing versioned sidebar file is allowed because Docusaurus prefers omitting empty files), but the current version must have a valid sidebar path. The message lists three valid alternatives: an existing path, false to disable, or undefined for auto-generation.

Source

Thrown at packages/docusaurus-plugin-content-docs/src/versions/files.ts:229

    throw new Error(
      `The docs folder does not exist for version "${versionName}". A docs folder is expected to be found at ${path.relative(
        context.siteDir,
        contentPath,
      )}.`,
    );
  }

  // If the current version defines a path to a sidebar file that does not
  // exist, we throw! Note: for versioned sidebars, the file may not exist (as
  // we prefer to not create it rather than to create an empty file)
  // See https://github.com/facebook/docusaurus/issues/3366
  // See https://github.com/facebook/docusaurus/pull/4775
  if (
    versionName === CURRENT_VERSION_NAME &&
    typeof sidebarFilePath === 'string' &&
    !(await fs.pathExists(sidebarFilePath))
  ) {
    throw new Error(`The path to the sidebar file does not exist at "${path.relative(
      context.siteDir,
      sidebarFilePath,
    )}".
Please set the docs "sidebarPath" field in your config file to:
- a sidebars path that exists
- false: to disable the sidebar
- undefined: for Docusaurus to generate it automatically`);
  }

  return {contentPath, contentPathLocalized, sidebarFilePath};
}

View on GitHub (pinned to 3f483e80e3)

Solutions

  1. Point sidebarPath at a file that exists (fix the typo or restore the file).
  2. Set sidebarPath: false to disable the sidebar entirely.
  3. Set sidebarPath: undefined (or omit it) to let Docusaurus auto-generate sidebars.
  4. Verify the path is resolved from siteDir if relative, or use an absolute path.

Example fix

// docusaurus.config.js - before
plugins: [['@docusaurus/plugin-content-docs', {
  sidebarPath: require.resolve('./sidebars-typo.js'), // missing
}]]

// after: existing file
plugins: [['@docusaurus/plugin-content-docs', {
  sidebarPath: require.resolve('./sidebars.js'),
}]]
Defensive patterns

Strategy: validation

Validate before calling

const fs = require('fs');
function validateSidebarPath(sidebarPath) {
  if (typeof sidebarPath === 'string' && !fs.existsSync(sidebarPath)) {
    throw new Error(`sidebarPath '${sidebarPath}' does not exist. Set it to an existing file, false, or undefined.`);
  }
}

Type guard

function isValidSidebarPathOption(value) {
  return value === false || value === undefined || (typeof value === 'string' && fs.existsSync(value));
}

Prevention

When it happens

Trigger: docusaurus.config.js sets docs.sidebarPath to a sidebars file that was deleted or never created; the path is wrong (typo, wrong relative root); moving sidebars.js without updating the config; a fresh project where the default sidebars.js was removed.

Common situations: Renaming sidebars.js to sidebars.config.js without updating the path; scaffolding errors; monorepo path mismatches; deleting sidebars.js during cleanup.

Related errors


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