rsnext/errors/conflicting-ssg-paths.md
Michael Novotny a973ad64d4
Makes codeblock language and filename extensions consistent (#51056)
There was mismatched usage of `js`, `jsx`, `ts`, and `tsx`. Just tried to get them all in sync.
2023-06-12 18:55:08 +00:00

1.5 KiB

Conflicting SSG Paths

Why This Error Occurred

In your getStaticPaths function for one of your pages you returned conflicting paths. All page paths must be unique and duplicates are not allowed.

Possible Ways to Fix It

Remove any conflicting paths shown in the error message and only return them from one getStaticPaths.

Example conflicting paths:

// pages/hello/world.jsx
export default function Hello() {
  return 'hello world!'
}

// pages/[...catchAll].jsx
export const getStaticProps = () => ({ props: {} })

export const getStaticPaths = () => ({
  paths: [
    // this conflicts with the /hello/world.js page, remove to resolve error
    '/hello/world',
    '/another',
  ],
  fallback: false,
})

export default function CatchAll() {
  return 'Catch-all page'
}

Example conflicting paths:

// pages/blog/[slug].jsx
export const getStaticPaths = () => ({
  paths: ['/blog/conflicting', '/blog/another'],
  fallback: false,
})

export default function Blog() {
  return 'Blog!'
}

// pages/[...catchAll].jsx
export const getStaticProps = () => ({ props: {} })

export const getStaticPaths = () => ({
  paths: [
    // this conflicts with the /blog/conflicting path above, remove to resolve error
    '/blog/conflicting',
    '/another',
  ],
  fallback: false,
})

export default function CatchAll() {
  return 'Catch-all page'
}