facebook/docusaurus · error · Error

The following permalinks are duplicated: ${errorMessage}

Error message

The following permalinks are duplicated:
${errorMessage}

What it means

Thrown by authorsMap validation when two or more authors in the authors map share the same permalink (authorsMap.permalink). Each author page must have a unique URL; duplicates would cause route collisions. The message lists each duplicated permalink and the conflicting author names.

Source

Thrown at packages/docusaurus-plugin-content-blog/src/authorsMap.ts:88

    // Group authors by their permalink
    .groupBy((author) => author.page?.permalink)
    // Filter to keep only permalinks with more than one author
    .pickBy((authors) => authors.length > 1)
    // Transform the object into an array of [permalink, authors] pairs
    .toPairs()
    .value();

  if (permalinkCounts.length > 0) {
    const errorMessage = permalinkCounts
      .map(
        ([permalink, authors]) =>
          `Permalink: ${permalink}\nAuthors: ${authors
            .map((author) => author.name || 'Unknown')
            .join(', ')}`,
      )
      .join('\n');

    throw new Error(
      `The following permalinks are duplicated:\n${errorMessage}`,
    );
  }
}

function normalizeAuthor({
  authorsBaseRoutePath,
  authorKey,
  baseUrl,
  author,
}: {
  authorsBaseRoutePath: string;
  authorKey: string;
  baseUrl: string;
  author: AuthorInput;
}): AuthorWithKey {
  function getAuthorPage(): AuthorPage | null {
    if (!author.page) {

View on GitHub (pinned to 3f483e80e3)

Solutions

  1. Open authors.yml and find every entry listed in the error message.
  2. Give each author a distinct permalink (e.g. /authors/jane, /authors/john).
  3. Re-run the build to confirm no other permalink collisions remain.

Example fix

# before
jane:
  name: Jane
  permalink: /authors/j
john:
  name: John
  permalink: /authors/j
# after
jane:
  name: Jane
  permalink: /authors/jane
john:
  name: John
  permalink: /authors/john
Defensive patterns

Strategy: validation

Validate before calling

const permalinks = Object.values(authorsMap).map(a => (a as any).permalink).filter(Boolean);
const dupes = permalinks.filter((p, i, arr) => arr.indexOf(p) !== i);
if (dupes.length) throw new Error(`Duplicate author permalinks: ${dupes}`);

Prevention

When it happens

Trigger: Two keyed authors in authors.yml specify the same `permalink` value (or both omit it, resolving to a default). Triggered when the blog plugin builds the authors map.

Common situations: Copying an author entry and forgetting to change the permalink, or removing permalink from multiple entries so they all fall back to the same slugified name. Locale-specific author files that duplicate permalinks.

Related errors


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