avatar

Camille Durand

Mis à jour : 2026-08-21

7 min de lecture

Vos rapports de campagne affichent-ils des erreurs SMS sans vous permettre d’identifier ce qu’il faut corriger ?

Un message d'erreur SMS indique qu'une étape de l'envoi ou de la livraison a échoué : un numéro mal formaté peut bloquer un SMS avant même son départ. Si l'opérateur l'a déjà reçu, le problème peut venir du réseau, du filtrage ou de la disponibilité du destinataire. Mais comment le savoir, et comment y remédier ?

Dans cet article, vous verrez comment retrouver l'origine d'un code, choisir la bonne correction et vérifier si elle fonctionne.

Si votre problème concerne plutôt un téléphone qui refuse d'envoyer un message, consultez notre guide consacré aux causes d'un SMS non envoyé.

Que signifie un message d'erreur SMS ?


Définition rapide

Un message d'erreur SMS est un retour généré lorsqu'un téléphone, une application, un réseau mobile ou une plateforme d'envoi ne peut pas traiter normalement le message. Il peut signaler une demande invalide, un problème temporaire d'acheminement ou un rejet définitif. Sa signification dépend du statut affiché et du système qui a généré ce retour.

Un statut « en attente » n'est pas encore un échec : la plateforme ou l'opérateur n'a pas renvoyé de résultat définitif. Un blocage avant l'envoi et un refus après transmission n'appellent pas la même correction.

Lisez d'abord le statut et le motif d'échec pour savoir s'il faut corriger la demande, retirer le contact ou attendre.

Et puis, un code SMS n'a de sens qu'avec sa source. Android, le réseau mobile et une API peuvent utiliser le même numéro pour décrire des problèmes différents.

Comment identifier l'origine d'une erreur SMS ?

Notez le code, le message complet et l'écran sur lequel il apparaît. Vérifiez s'il touche un seul numéro, un opérateur ou toute la campagne. Dans un rapport professionnel, repérez aussi si le SMS a été bloqué avant sa remise au réseau ou refusé plus tard dans la chaîne de livraison.

Le code 38 illustre bien ce piège. Le rechercher avec les mots « Orange » ou « Free » ne le transforme pas en code propre à l'un de ces opérateurs : il s'agit d'une cause réseau définie par la norme 3GPP, que le téléphone peut simplement afficher à l'utilisateur.

3GPP en bref

Le 3GPP est un partenariat international qui élabore les spécifications techniques utilisées par les réseaux mobiles. Il fournit notamment un vocabulaire commun pour décrire les incidents entre un téléphone et le réseau. Un opérateur peut donc transmettre un code 3GPP sans en être l'auteur.

Pourquoi un même code SMS peut-il avoir plusieurs significations ?

Il n'existe pas de registre unique pour tous les codes SMS. Les protocoles réseau, les systèmes d'exploitation, les applications et les plateformes d'envoi définissent chacun leur propre nomenclature. Un numéro fonctionne donc comme une référence locale, et non comme un diagnostic universel. Dans Android, par exemple, la valeur 0 signifie « aucune erreur ». Une autre application peut pourtant afficher « erreur 0 » pour désigner un problème défini dans son propre système.

Codes d'erreur SMS courants : signification et premières vérifications

Code réseau 3GPP

Le code ci-dessous est une cause réseau définie dans la spécification ETSI / 3GPP TS 24.011. Il peut être affiché par différents téléphones et opérateurs.

Code Signification Que vérifier ?
38 Réseau hors service (Network out of order). Attendez avant de réessayer. Si l'erreur persiste, vérifiez l'état du réseau auprès de l'opérateur.

Codes Android SmsManager

Les codes suivants proviennent de la documentation Android SmsManager. Ils ne s'appliquent que si le téléphone ou l'application utilise cette nomenclature.

Code Signification Que vérifier ?
0 Aucune erreur dans Android. Si l'interface affiche « erreur 0 », identifiez l'application : elle utilise une autre nomenclature.
1 Échec générique. Recherchez un motif complémentaire, puis contrôlez le réseau et la configuration.
2 Radio mobile désactivée. Désactivez le mode avion et activez le réseau mobile.
4 Service indisponible. Vérifiez la couverture, la carte SIM et l'état du service mobile.
5 Limite d'envoi dépassée. Attendez avant de réessayer et vérifiez les limites de l'application.
10 Envoi rejeté par le réseau. Vérifiez l'accès au réseau et contactez l'opérateur si le rejet persiste.
14 Format SMS invalide. Contrôlez le format du message généré.
16 Erreur du modem. Redémarrez la connexion mobile ou l'appareil avant un nouvel essai.
17 Erreur réseau. Vérifiez la couverture et recherchez un incident chez l'opérateur.
18 Erreur d'encodage. Contrôlez l'encodage du texte final.
19 Adresse SMSC invalide. Vérifiez le numéro du centre de messagerie auprès de l'opérateur.
20 Opération non autorisée. Contrôlez les autorisations, la carte SIM et les restrictions du service.
500 Échec interne lors de la distribution d'un SMS reçu. Confirmez que le code provient bien d'Android avant d'utiliser cette définition.
Et sur iPhone ?

Sur iPhone, l'app Messages n'affiche généralement pas de code numérique détaillé comparable aux résultats Android. Un échec apparaît plutôt avec la mention « Non distribué » et un point d'exclamation rouge. L'assistance Apple recommande alors de vérifier la connexion, de réessayer l'envoi ou de choisir l'option « Envoyer par SMS ou MMS ». Si l'alerte persiste, la cause doit être vérifiée auprès de l'opérateur. Pour mieux distinguer les alertes de l'application Messages des statuts retournés par un fournisseur, consultez aussi notre guide sur les différences entre SMS et iMessage.

Comment corriger une erreur SMS selon sa cause ?

Réessayer n'est utile que pour un incident temporaire. Face à un numéro invalide, un modèle rejeté ou une limite de fréquence atteinte, une correction est indispensable.

Cause observée Correction prioritaire Faut-il réessayer ?
Numéro vide ou mal formaté Corriger le numéro au format international. Après correction
Numéro invalide ou hors service Retirer le numéro de la liste d'envoi. Non
Erreur de variable ou de modèle Contrôler les champs requis, le texte final et l'encodage. Après validation
Fréquence dépassée Espacer les envois et revoir les règles de déclenchement. Après le délai prévu
Filtrage opérateur ou blocage anti-spam Vérifier l'identité d'expéditeur, le consentement, le contenu, les liens et les règles locales. Après levée du blocage
Incident temporaire du canal ou du téléphone Attendre, puis programmer une nouvelle tentative contrôlée. Oui, avec délai
Échec permanent Arrêter les tentatives et exclure le contact de ce canal. Utiliser si nécessaire un autre canal autorisé. Non

Comment réduire les erreurs dans vos campagnes SMS marketing ?

Une hausse des erreurs ne justifie pas de relancer toute la campagne. Regardez quels statuts progressent et sur quels segments. Vous pourrez corriger la cause réelle sans fausser davantage les indicateurs ni multiplier les envois inutiles. Cette méthode reste la même quel que soit le fournisseur. Les captures suivantes l'illustrent à partir de la console SMS d'EngageLab.

1. Surveillez les statuts d'envoi et de livraison

Commencez par la vue d'ensemble pour comparer les messages livrés et les échecs d'envoi. Les filtres par période, destinataire, modèle ou identifiant permettent de vérifier si les échecs sont isolés ou concentrés sur une même campagne.

Statuts Delivered et Send Failed dans la console SMS EngageLab

Figure 1 — Vue d'ensemble des statuts « Delivered » et « Send Failed » dans la console SMS d'EngageLab.

Ouvrez ensuite le détail d'un message en échec. Son cycle de vie indique l'étape où l'envoi s'est arrêté et le motif retourné. Dans l'exemple ci-dessous, le modèle n'est pas autorisé pour la région ciblée : répéter immédiatement l'envoi ne résoudrait donc pas le problème. Il faut d'abord corriger le modèle ou sa configuration régionale.

Motif détaillé d'un échec Send Failed dans la console SMS EngageLab

Figure 2 — Détail d'un statut « Send Failed » et de son motif dans la console SMS d'EngageLab.

2. Identifiez les causes récurrentes

  • Contacts : utilisez le format international, retirez les numéros invalides ou hors service et vérifiez que la ligne accepte les SMS.
  • Contenu : relisez les variables de vos modèles de SMS personnalisés, l'encodage, le nombre de segments et les liens. Les raccourcisseurs d'URL publics partagés peuvent compliquer la délivrabilité ; préférez un domaine associé à votre marque.
  • Fréquence : repérez les scénarios qui concentrent trop d'envois sur une courte période.
  • Conformité : contrôlez la gestion de l'opt-in et de l'opt-out SMS, l'identité d'expéditeur et les règles du pays ciblé. Ajoutez immédiatement toute opposition à la liste d'exclusion.
  • Livraison : séparez les incidents temporaires des échecs qui exigent une correction.

Vérifiez l’encodage du message final, après insertion des variables, et pas uniquement celui du modèle. En GSM-7, un SMS peut contenir jusqu’à 160 caractères, contre 70 en UCS-2. Pour un message envoyé en plusieurs segments, ces limites sont généralement de 153 et 67 caractères par segment. Un emoji, un caractère spécial ou une donnée personnalisée incompatible avec le GSM-7 peut faire basculer tout le message en UCS-2, augmenter le nombre de segments et, selon le fournisseur, le coût total de l’envoi.

En France, les recommandations de la CNIL sur la prospection par SMS (2026) précisent que la prospection auprès des particuliers nécessite en principe un consentement préalable. Pour les professionnels, la personne doit notamment pouvoir s'opposer simplement aux sollicitations. Dans tous les cas, chaque message de prospection doit permettre d'identifier l'organisation émettrice et d'exprimer facilement un refus.

3. Appliquez une correction ciblée et proportionnée

Relancer toute la base après un échec risque d'augmenter les coûts, de fausser les indicateurs et de dégrader progressivement la délivrabilité. La correction doit dépendre de la cause, du caractère temporaire ou permanent de l'erreur et de l'urgence du message.

  • Erreur temporaire : espacez les nouvelles tentatives à l'aide d'une temporisation exponentielle (exponential backoff) et fixez un nombre maximal d'essais. Pour un message à durée de vie courte, comme un code de vérification, arrêtez les relances dès qu'il n'est plus utile.
  • Échec permanent : marquez le numéro comme invalide ou indisponible et excluez-le des prochains envois SMS. Il n'est pas nécessaire de supprimer toute la fiche du contact : conservez les informations utiles à votre suivi et à vos autres canaux autorisés.
  • Filtrage opérateur ou blocage anti-spam : suspendez les envois concernés, puis vérifiez le texte, les liens, l'identité de l'expéditeur, la fréquence et les exigences du pays ciblé. Ne relancez qu'après avoir isolé et corrigé la cause probable du filtrage.
  • Erreur de configuration ou de modèle : contrôlez les variables, l'encodage, l'identité d'expéditeur, les autorisations régionales et le routage. Effectuez ensuite un test sur un petit nombre de destinataires avant de reprendre la campagne.
  • Message critique : prévoyez si nécessaire un basculement (failover) vers un canal de secours préalablement configuré et accepté par le destinataire, comme l'email, WhatsApp Business ou un appel vocal. Vérifiez d'abord que le SMS ne sera pas livré tardivement afin d'éviter les notifications ou codes en double.

4. Mesurez les résultats après correction

Une correction ne se valide pas sur un seul envoi. Définissez d'abord une période ou une campagne de référence, puis comparez des volumes et des segments similaires après la modification. Suivez notamment la part de cibles valides, le taux d'envoi, le taux de livraison et la répartition des échecs.

Dans un tableau de bord SMS, les écarts entre la cible planifiée, la cible valide, les messages envoyés et les messages livrés permettent de repérer l'étape où les pertes se concentrent. L'exemple ci-dessous montre cette lecture dans l'espace d'analyse d'EngageLab.

Analyse des cibles planifiées, des SMS envoyés et des messages livrés dans EngageLab

Figure 3 — Évolution des cibles planifiées et valides, des SMS envoyés et livrés dans l'espace d'analyse SMS d'EngageLab.

  • Cible planifiée → cible valide : un écart important peut signaler des numéros invalides, exclus ou non éligibles pour le canal SMS.
  • Cible valide → nombre envoyé : vérifiez la configuration de la campagne, les modèles, les autorisations régionales ou les limites du compte.
  • Nombre envoyé → nombre livré : consultez les rapports de livraison pour distinguer un problème temporaire d'un rejet lié au destinataire, au contenu ou à l'opérateur.

Ne mesurez pas l'amélioration uniquement à partir du nombre de SMS livrés, car le volume des campagnes peut varier. Comparez plutôt les taux sur des périodes équivalentes, puis vérifiez si le résultat se confirme par pays, opérateur, modèle ou type de message. Une amélioration durable doit apparaître sur plusieurs envois comparables.

Quand faut-il s'appuyer sur une plateforme SMS ?

Il n'existe pas de volume précis à partir duquel une plateforme devient indispensable. Le suivi manuel montre surtout ses limites lorsqu'une équipe doit comparer plusieurs campagnes, pays ou opérateurs, ou surveiller des messages critiques.

Attention, les statuts et codes d'erreur appartiennent à la nomenclature de la plateforme qui les génère. Ne leur appliquez pas la définition trouvée dans la documentation d'un autre fournisseur.

EngageLab, utilisé ci-dessus pour illustrer cette méthode, propose une solution omnicanale fiable avec un taux moyen de délivrabilité SMS de 98 %. La plateforme réunit également quatre capacités essentielles à la gestion des campagnes SMS :

page sms
  • Suivi des statuts de livraison : visualisation des messages en cours, en attente, livrés ou en échec.
  • Analyse des motifs d'échec et automatisation par webhook : consultation du code et du détail retournés, avec transmission automatique des changements de statut à votre système. Celui-ci peut alors déclencher une alerte, exclure un numéro invalide ou programmer une nouvelle tentative contrôlée.
  • Comparaison des performances : analyse des résultats par période, modèle, opérateur ou pays.
  • Mesure de l'effet des corrections : suivi de l'évolution des erreurs après le nettoyage des contacts, la modification du contenu ou l'ajustement des nouvelles tentatives.

Comme nous l'avons vu, les codes d'erreur diffèrent d'un fournisseur à l'autre. Pour interpréter les statuts et les codes propres à EngageLab, consultez la documentation des réponses de livraison SMS d'EngageLab.

Observez vos statuts SMS dans la console

Créez un compte gratuit pour tester un envoi, suivre son cycle de vie et consulter les motifs d'échec.

Commencer gratuitement

FAQ sur les messages d'erreur SMS

Les codes d'erreur SMS sont-ils universels ?

Non. Les protocoles, opérateurs et plateformes utilisent des espaces de codes différents. Vérifiez toujours la documentation correspondant au service qui a produit le code.

Quelle différence entre une erreur temporaire et une erreur permanente ?

Une erreur temporaire peut disparaître après un délai, par exemple lorsqu'un téléphone est éteint. Une erreur permanente demande une correction préalable, comme supprimer un numéro invalide ou résoudre un problème de consentement.

Pourquoi mon SMS est-il signalé comme spam ou bloqué par l'opérateur ?

Les opérateurs mobiles filtrent les messages pour protéger leurs clients contre les courriers indésirables et pour faire respecter les réglementations locales. Un blocage (souvent associé aux codes 30 ou 40002) se produit généralement à cause du contenu du message, de l'absence de mention "STOP", ou de l'utilisation d'un numéro d'expéditeur non vérifié.

Conclusion : adaptez la réponse à chaque erreur SMS

Une erreur permanente exige une correction avant tout nouvel envoi. Une erreur temporaire autorise un nouvel essai, avec un délai et une limite. Si le même motif réapparaît dans plusieurs campagnes ou chez un opérateur précis, mesurez son évolution avant de modifier votre stratégie.

Réduisez les erreurs avant votre prochaine campagne SMS

Suivez les statuts, interprétez les motifs d'échec et mesurez l'effet de vos corrections depuis une même plateforme.