---
title: "How do I fix the intl version conflict with flutter_localizations?"
description: "The `flutter_localizations` package ships inside the Flutter SDK with its own `intl` constraint, so a different constraint in your `pubspec.yaml` or in another package cannot be resolved. Use the `any` constraint for `intl`, match the version the SDK requires, or upgrade the conflicting package."
category: flutter
date: 2026-10-09
canonical: https://localizely.com/i18n-questions/flutter/how-do-i-fix-the-intl-version-conflict-with-flutter-localizations/
---

# How do I fix the intl version conflict with flutter_localizations?

`flutter_localizations` is not downloaded from pub.dev; it is part of the Flutter SDK, and its `pubspec.yaml` carries an `intl` constraint chosen for that SDK release. Up to Flutter 3.44 that constraint was an exact version: `0.17.0` through Flutter 3.7, `0.18.0` in 3.10, `0.18.1` in 3.13 to 3.19, `0.19.0` in 3.22 to 3.29 and `0.20.2` in 3.32 to 3.44. Flutter 3.47 relaxed it to `^0.20.3`. Any `intl` constraint elsewhere in the dependency graph that does not overlap with it makes pub fail:

```
Because my_app depends on flutter_localizations from sdk which depends on intl ^0.20.2, intl ^0.20.2 is required.
So, because my_app depends on intl ^0.19.0, version solving failed.
```

Fixes, in the order to try them:

1. Let the SDK decide. The [Flutter docs](https://docs.flutter.dev/ui/accessibility-and-internationalization/internationalization) add `intl` with the `any` constraint, which accepts whatever version `flutter_localizations` requires:

```bash
flutter pub add flutter_localizations:"{sdk: flutter}" intl:any
```

```yaml
dependencies:
  flutter_localizations:
    sdk: flutter
  intl: any
```

`any` is safe here because `flutter_localizations` already constrains `intl`; `flutter pub deps` shows the version that was resolved, for example `intl 0.20.3`.

2. If your own code needs a specific `intl` API, use the version your Flutter release allows and upgrade Flutter when you need a newer [intl](https://pub.dev/packages/intl); the two move together.

3. If the conflict comes from another package, upgrade that package. [easy_localization](https://pub.dev/packages/easy_localization) 3.0.7 allowed `intl` only up to `0.19.0`, so it could not be installed next to Flutter 3.32's `0.20.2`; `3.0.7+1` and later allow `<0.21.0`. If no compatible release exists, file an issue with the package or fork it.

4. `dependency_overrides` is the last resort:

```yaml
dependency_overrides:
  intl: ^0.20.3
```

It forces one `intl` version onto every package regardless of what they declare. The [pub documentation](https://dart.dev/tools/pub/dependencies) warns that an override outside the range a package claims to support can break your application; with `intl` that typically surfaces as a compile error inside the overridden package when it uses an API that changed between `intl` versions. Remove the override as soon as an upgraded package or Flutter release resolves the conflict properly.

Source: https://localizely.com/i18n-questions/flutter/how-do-i-fix-the-intl-version-conflict-with-flutter-localizations/
