In-depth Next.js guides covering App Router, RSC, ISR, and deployment. Get code examples, optimization checklists, and prompts to accelerate development.
I was setting up internationalization for a Next.js 15 project when I hit a frustrating wall. Despite having all the correct next-intl configuration files in place, the development server kept throwing the same error: "Couldn't find next-intl config file." The configuration was perfect, the file paths were correct, and even creating a minimal test project yielded the same result.
After digging through GitHub issues and Stack Overflow threads, I discovered this is actually a known compatibility issue between Next.js 15's Turbopack and the next-intl library. Here's the exact fix that resolved it.
The Problem
When running a Next.js 15 application with next-intl configured correctly, you might encounter this error:
code
Error: Couldn't find next-intl config file. Please follow the instructions at https://next-intl.dev/docs/getting-started/app-router
This happens even when:
Your src/i18n/request.ts file exists and is properly configured
Your next.config.ts includes the next-intl plugin
Your message files are in the correct location
You've followed the official documentation exactly
The error occurs because of a conflict between Turbopack (Next.js 15's new bundler) and how next-intl resolves its configuration files.
The Solution
The fix involves adding a turbopack configuration to your Next.js config that provides next-intl with the proper configuration space it needs.
The key addition is the turbopack: {} configuration. This provides next-intl with the configuration space it needs to properly resolve module aliases in the Turbopack environment.
Why This Works
Next.js 15 introduced Turbopack as the default bundler, but next-intl's plugin system was designed for the previous webpack-based setup. When next-intl tries to add module aliases for resolving your i18n configuration, it looks for the turbopack configuration key. However, in certain versions of Next.js 15, this key isn't properly recognized.
By explicitly including the turbopack: {} object in the configuration, we're providing next-intl with the proper location where it can safely add its required aliases. The empty object is sufficient because next-intl only needs a place to inject its own configuration.
Additional Setup Verification
While you're troubleshooting, ensure your basic next-intl setup is correct:
Your i18n request configuration should be at src/i18n/request.ts:
The "Couldn't find next-intl config file" error should be resolved, and your internationalization should work correctly.
This Turbopack compatibility issue affects many developers moving to Next.js 15, but the fix is straightforward once you know about it. The turbopack configuration provides the bridge next-intl needs for proper Turbopack integration.