🅰️ Angular

NullInjectorError: No provider for X

Angular ne sait pas comment créer le service que vous injectez : aucun provider ne lui a été déclaré dans l'arbre d'injection.

Message d'erreur
NullInjectorError: R3InjectorError(AppModule)[MyService -> MyService]: No provider for MyService!

🔍 Cause la plus probable

Le service n'a pas `@Injectable({ providedIn: 'root' })`, ou il n'est pas fourni dans le `providers` du composant/route, ou vous injectez quelque chose qui n'est pas injectable.

✅ Solution étape par étape

  1. Ajoutez `providedIn: 'root'` au décorateur `@Injectable` du service (cas le plus courant).
  2. Pour un service à portée limitée, ajoutez-le au tableau `providers` du composant ou de la route.
  3. Vérifiez que vous n'injectez pas un simple objet/constante sans `InjectionToken`.
@Injectable({ providedIn: 'root' })
export class MyService {}

🧩 Autres causes possibles

HttpClient non fourni

Ajoutez `provideHttpClient()` dans `app.config.ts` (standalone) ou importez `HttpClientModule`.

Service fourni dans un module non importé

Importez le module qui déclare le provider, ou passez le service en `providedIn: 'root'`.

🛡️ Comment l'éviter à l'avenir

Privilégiez `providedIn: 'root'` pour les services partagés : tree-shakable et toujours disponible.

🔒 Votre erreur est différente ?

Collez votre message d'erreur dans notre analyseur IA. Traitement anonymisé, rien n'est stocké.

Analyser mon erreur avec l'IA

Bloqué sur un bug plus complexe ?

Nos développeurs Java, Spring & Angular débuggent, optimisent et livrent votre projet.

Parler à un développeur