---
title: "How to Fix \"Couldn't find next-intl config file\" Error in Next.js 15"
slug: "fix-nextintl-turbopack-error"
published: "2025-09-23"
updated: "2026-03-28"
validated: "2025-10-20"
categories:
  - "Next.js"
tags:
  - "next.js 15"
  - "next-intl"
  - "turbopack"
  - "error fix"
  - "internationalization"
  - "config file"
  - "typescript"
  - "webpack"
llm-intent: "reference"
audience-level: "beginner"
framework-versions:
  - "next.js"
  - "next-intl"
  - "turbopack"
  - "typescript"
status: "stable"
llm-purpose: "Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues."
llm-prereqs:
  - "Access to Next.js"
  - "Access to next-intl"
  - "Access to Turbopack"
  - "Access to TypeScript"
llm-outputs:
  - "Completed outcome: Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues."
---

**Summary Triples**
- (Error, occurs, "Couldn't find next-intl config file" when running a Next.js 15 app with Turbopack)
- (Cause, is, Compatibility/module-resolution conflict between Turbopack and next-intl)
- (Fix, is to, Add a turbopack configuration object to next.config.ts and export the config via the next-intl plugin)
- (Code change, required, Add `const nextConfig = { turbopack: {} }; export default withNextIntl(nextConfig);` to next.config.ts)
- (Result, after fix, next-intl will find its config and the development server error will be resolved)
- (Reference, docs, https://next-intl.dev/docs/getting-started/app-router)

### {GOAL}
Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues.

### {PREREQS}
- Access to Next.js
- Access to next-intl
- Access to Turbopack
- Access to TypeScript

### {STEPS}
1. Identify the Turbopack conflict
2. Add turbopack configuration
3. Clear cache and restart
4. Verify the fix

<!-- llm:goal="Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues." -->
<!-- llm:prereq="Access to Next.js" -->
<!-- llm:prereq="Access to next-intl" -->
<!-- llm:prereq="Access to Turbopack" -->
<!-- llm:prereq="Access to TypeScript" -->
<!-- llm:output="Completed outcome: Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues." -->

# How to Fix "Couldn't find next-intl config file" Error in Next.js 15
> Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues.
Matija Žiberna · 2025-09-23

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:

```
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.

Update your `next.config.ts` file:

```typescript
// File: next.config.ts
import createNextIntlPlugin from 'next-intl/plugin';

const withNextIntl = createNextIntlPlugin();

const nextConfig = {
  turbopack: {},
};

export default withNextIntl(nextConfig);
```

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`:

```typescript
// File: src/i18n/request.ts
import { getRequestConfig } from 'next-intl/server';
import { routing } from './routing';

export default getRequestConfig(async ({ requestLocale }) => {
  let locale = await requestLocale;

  if (!locale || !routing.locales.includes(locale as any)) {
    locale = routing.defaultLocale;
  }

  return {
    locale,
    messages: (await import(`../../messages/${locale}.json`)).default
  };
});
```

And your layout should properly await the params object (required in Next.js 15):

```typescript
// File: src/app/[locale]/layout.tsx
export default async function IntlLayout({
  children,
  params
}: {
  children: React.ReactNode;
  params: { locale: string };
}) {
  const { locale } = await params; // Note: await is required
  
  // Rest of your layout logic
}
```

## Final Steps

After making these changes:

1. Stop your development server
2. Clear the Next.js cache: `rm -rf .next`
3. Restart your development server: `npm run dev`

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.

If you've upgraded to Next.js 16 and encounter a different proxy-related i18n error, [next-intl with the Next.js 16 proxy middleware](/blog/next-intl-nextjs-16-proxy-fix) covers that case specifically. For the broader architectural decisions around structuring internationalization across a full Next.js project, [the Next.js internationalization architecture guide](/blog/nextjs-internationalization-architecture-guide) is a useful companion.

Let me know in the comments if you have questions, and subscribe for more practical development guides.

Thanks, Matija

## LLM Response Snippet
```json
{
  "goal": "Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues.",
  "responses": [
    {
      "question": "What does the article \"How to Fix \"Couldn't find next-intl config file\" Error in Next.js 15\" cover?",
      "answer": "Fix the next-intl config file error in Next.js 15 with Turbopack by adding turbopack configuration to resolve module alias issues."
    }
  ]
}
```