vercel/next.js · error
Invalid casing detected for project dir, received ${resolved
Error message
Invalid casing detected for project dir, received ${resolvedDir} actual path ${realDir}, see more info here https://nextjs.org/docs/messages/invalid-project-dir-casing What it means
Error "Invalid casing detected for project dir, received ${resolvedDir} actual path ${realDir}, see more info here https://nextjs.org/docs/messages/invalid-project-dir-casing" thrown in vercel/next.js.
Source
Thrown at packages/next/src/lib/get-project-dir.ts:16
import path from 'path'
import { warn } from '../build/output/log'
import { detectTypo } from './detect-typo'
import { realpathSync } from './realpath'
import { printAndExit } from '../server/lib/utils'
export function getProjectDir(dir?: string, exitOnEnoent = true) {
const resolvedDir = path.resolve(dir || '.')
try {
const realDir = realpathSync(resolvedDir)
if (
resolvedDir !== realDir &&
resolvedDir.toLowerCase() === realDir.toLowerCase()
) {
warn(
`Invalid casing detected for project dir, received ${resolvedDir} actual path ${realDir}, see more info here https://nextjs.org/docs/messages/invalid-project-dir-casing`
)
}
return realDir
} catch (err: any) {
if (err.code === 'ENOENT' && exitOnEnoent) {
if (typeof dir === 'string') {
const detectedTypo = detectTypo(dir, [
'build',
'dev',
'info',
'lint',
'start',
'telemetry',
'experimental-test',
])
View on GitHub (pinned to 0eb3775416)
Solutions
- Run the command from the directory using the exact on-disk casing of the project path.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/next/src/lib/get-project-dir.ts:16 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of vercel/next.js@0eb3775416 (2026-08-19).
Data as JSON: /api/errors/63c6991839bb1367.
Report an issue: GitHub.