{"record":{"id":"2e2344eb0e203e84","repo":"gatsbyjs/gatsby","slug":"name-created-a-page-with-a-component-path-that","errorCode":null,"errorMessage":"${name} created a page with a component path that doesn't match the casing of the actual file. This may work locally, but will break on systems which are case-sensitive, e.g. most CI/CD pipelines.\n\npage.component:     \"${page.component}\"\npath in filesystem: \"${trueComponentPath}\"\n                         ${markers}","messagePattern":"(.+?) created a page with a component path that doesn't match the casing of the actual file\\. This may work locally, but will break on systems which are case-sensitive, e\\.g\\. most CI/CD pipelines\\.\n\npage\\.component:     \"(.+?)\"\npath in filesystem: \"(.+?)\"\n                         (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/gatsby/src/redux/actions/public.js","lineNumber":363,"sourceCode":"      }\n\n      if (isWindows) {\n        page.component = ensureWindowsDriveIsUppercase(page.component)\n      }\n\n      if (trueComponentPath !== page.component) {\n        if (!hasWarnedForPageComponentInvalidCasing.has(page.component)) {\n          const markers = page.component\n            .split(``)\n            .map((letter, index) => {\n              if (letter !== trueComponentPath[index]) {\n                return `^`\n              }\n              return ` `\n            })\n            .join(``)\n\n          report.warn(\n            stripIndent`\n          ${name} created a page with a component path that doesn't match the casing of the actual file. This may work locally, but will break on systems which are case-sensitive, e.g. most CI/CD pipelines.\n\n          page.component:     \"${page.component}\"\n          path in filesystem: \"${trueComponentPath}\"\n                               ${markers}\n        `\n          )\n          hasWarnedForPageComponentInvalidCasing.add(page.component)\n        }\n\n        page.component = trueComponentPath\n      }\n\n      if (splitPath.length > 1) {\n        page.component = `${page.component}?__contentFilePath=${splitPath[1]}`\n      }\n","sourceCodeStart":345,"sourceCodeEnd":381,"githubUrl":"https://github.com/gatsbyjs/gatsby/blob/e85d62f1779e353eaac1753211629a26d123e26c/packages/gatsby/src/redux/actions/public.js#L345-L381","documentation":"createPage validation (public actions) detects that page.component's letter casing differs from the real on-disk path (common when developing on case-insensitive filesystems like Windows/macOS). Gatsby warns with a ^ marker diff because the mismatch will break builds on case-sensitive systems (Linux CI). The warning is shown once per offending path.","triggerScenarios":"Thrown at packages/gatsby/src/redux/actions/public.js:363 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the component path casing in createPage (or the createPages caller) to match the filesystem exactly","Align file naming conventions across the repo to avoid case variants","Test the build on a case-sensitive filesystem or CI to catch regressions"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e85d62f1779e353eaac1753211629a26d123e26c","analyzedAt":"2026-08-26T17:50:09.662Z","contentChangedAt":"2026-08-26T17:50:09.662Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}