Genuka WA docs

Erreur WhatsApp 0 : authentification impossible, solution

Erreur WhatsApp 0 « We were unable to authenticate the app user » : jeton expiré, invalidé ou accès coupé. Comment la corriger, et le cas Genuka WA.

L'erreur WhatsApp 0 signifie que Meta n'a pas pu authentifier l'utilisateur derrière le jeton d'accès. En pratique, le jeton a expiré, a été invalidé, ou son propriétaire a interdit aux applications d'accéder à ses données. Elle se corrige comme une erreur 190 : avec un nouveau jeton, de préférence un jeton d'utilisateur système.

Que signifie l'erreur 0 ?

C'est la première ligne des erreurs d'autorisation de la Cloud API :

« We were unable to authenticate the app user. » — Meta, codes d'erreur de la Cloud API

Meta l'explique ainsi : « Typically this means the included access token has expired, been invalidated, or the app user has changed a setting to prevent all apps from accessing their data. » La solution proposée est d'obtenir un nouveau jeton, en renvoyant vers les jetons d'utilisateur système. La documentation générale de Graph décrit le même symptôme pour les erreurs de type OAuthException sans sous-code : connexion ou jeton expiré, révoqué ou invalide (Meta, Graph API, gestion des erreurs).

Erreur 0 ou erreur 190 ?

Erreur 0Erreur 190
Libellé Meta« We were unable to authenticate the app user. »« Your access token has expired. »
Ce qui est en causeL'utilisateur derrière le jeton, ou le jeton lui-mêmeLe jeton, arrivé à expiration ou invalidé
Remède indiqué par MetaUn nouveau jetonUn nouveau jeton

Dans les deux cas, la même requête avec le même jeton échouera toujours.

Quand l'erreur 0 apparaît-elle ?

  • Le jeton a expiré ou a été invalidé, par exemple un jeton utilisateur généré depuis la page API Setup du tableau de bord d'app, que Meta fait expirer en quelques heures (Meta, Access tokens).
  • Le jeton dépend d'une personne qui a changé ses réglages. Un jeton utilisateur est lié au compte Facebook de celui qui l'a généré : s'il coupe l'accès des applications à ses données, le jeton cesse de fonctionner.
  • Le jeton a été révoqué côté Meta.

Où la voir dans Genuka WA ?

Genuka WA range l'erreur 0 dans la classe config et la traite comme un identifiant mort : dans une campagne MARKETING, elle ne déclenche pas le repli de l'API Marketing Messages vers /messages, qui ne ferait que doubler l'échec et masquer la vraie cause.

409 — POST /api/v1/messages
{
  "error": "send_config",
  "message": "We were unable to authenticate the app user.",
  "meta": {
    "errorClass": "config",
    "retryable": false,
    "code": 0,
    "traceId": "AbC…"
  }
}

Sur POST /api/v1/templates, la même erreur revient en 403 meta_rejected.

Comment corriger l'erreur 0 ?

Si vous passez par Genuka WA

Vous n'avez aucun jeton Meta à renouveler : chaque appel sur votre numéro part avec le jeton d'utilisateur système de Genuka, qui ne dépend d'aucune personne et n'a pas de date d'expiration. Une erreur 0 relève donc de Genuka.

  1. Arrêtez les réessais. retryable: false : rien ne changera tant que le jeton n'aura pas changé.
  2. Écrivez au support Genuka avec l'en-tête x-request-id et meta.traceId.
  3. Vérifiez le numéro avec GET /api/v1/connections. disconnected signifie que Meta a signalé le compte comme n'étant plus partagé avec Genuka, ou supprimé, ou que vous avez libéré le numéro vous-même. Un client qui a retiré l'accès le rétablit par le lien de connexion ; un numéro libéré demande de nouveau une place libre ; un compte supprimé ou désactivé par Meta (erreur 368) ne se rétablit pas ainsi. L'événement account_update relayé à vos webhooks dit lequel de ces cas s'applique.

Si vous appelez la Cloud API avec votre propre jeton

Passez le jeton au débogueur. Le débogueur de jetons indique s'il est encore valide, à qui il appartient et quelles permissions il porte.

Remplacez-le par un jeton d'utilisateur système. Meta les décrit comme durables et capables de représenter un service automatisé sans action d'un utilisateur, à l'inverse des jetons utilisateur (Meta, Access tokens). Générez-le avec business_management, whatsapp_business_management et whatsapp_business_messaging.

Assignez-lui les comptes. Sans accès au compte WhatsApp et au compte de messagerie, le nouveau jeton recevra une erreur 200 au lieu de 0.

Comment éviter l'erreur 0 ?

  • Aucun jeton personnel en production. Le départ d'un salarié, un mot de passe changé ou un réglage de confidentialité ne doivent pas pouvoir couper vos envois.
  • Surveillez la classe config. Chez Genuka WA, une hausse soudaine de réponses meta.errorClass: "config" sur plusieurs numéros à la fois signale un problème d'identifiants, pas un problème de contenu.
  • Gardez une trace de traceId. C'est ce que demande le support de Meta, et l'identifiant expire rapidement selon la documentation de Graph.

Quels codes sont liés ?

  • 190 : le jeton a expiré.
  • 200 : le jeton est valide mais n'a pas accès au compte ou à la permission.
  • 10 : permission non accordée ou retirée.
  • 3 : capacité ou permission manquante pour cet endpoint.

FAQ

Faut-il réessayer un appel refusé avec l'erreur 0 ?

Non. Le jeton est en cause : la même requête échouera à l'identique jusqu'à son remplacement.

Ma clé API Genuka est-elle compromise ?

Non. L'erreur 0 concerne le jeton Meta, pas votre clé pk_live_…. Une clé refusée produit un 401 invalid_token de Genuka.

Pourquoi mon jeton fonctionnait-il hier ?

Parce qu'un jeton utilisateur expire en quelques heures, ou cesse de fonctionner dès que son propriétaire change ses réglages. Un jeton d'utilisateur système n'a pas ce défaut.

Sources

Sur cette page