Articles sur : Amazon Marketplace Plus (PrestaShop)

Erreur Cloudflare 524 lors de l’exécution du cron (timeout) - Amazon Marketplace Plus

La tâche cron échoue à cause d’une erreur Cloudflare 524. Cela signifie qu'une requête HTTP envoyée à travers Cloudflare dépasse le temps d’exécution maximal autorisé (généralement entre 100 et 120 secondes sur les plans standards).


Même si la tâche planifiée est lancée par le serveur (crontab), si elle est exécutée à travers une URL HTTP protégée par Cloudflare, la connexion sera coupée avant que le script ne termine son traitement.


Référence : Documentation Cloudflare sur l'erreur 524



Pourquoi cela se produit


L'erreur apparaît parce que :

  • Le traitement est trop lourd (catalogue volumineux, mise à jour des stocks ou volume élevé de commandes).
  • Cloudflare applique un timeout strict sur les requêtes HTTP proxifiées.
  • Le script PHP sous-jacent continue de s'exécuter sur votre serveur, mais Cloudflare coupe la connexion HTTP prématurément.



Méthode 1 : Exécution en PHP CLI (Recommandée)


La solution la plus fiable consiste à exécuter la tâche cron directement en PHP CLI (Ligne de commande) au lieu d'utiliser une URL HTTP. Le mode CLI permet de contourner complètement Cloudflare, les timeouts du serveur web et les restrictions HTTP.


Comparaison


  • Version HTTP (Provoque l'erreur 524) :

https://myshop.com/modules/amazonsaas/functions/check_stock.php?cron_token=XXXX&mkp=XXXX&fix=1


  • Version CLI (Recommandée) :

/usr/bin/php /chemin/absolu/de/votre/prestashop/modules/amazonsaas/functions/check_stock.php cron_token=XXXX mkp=XXXX fix=1


Instructions pour votre administrateur système / hébergeur :

  1. Remplacer la requête HTTP du cron dans la crontab par la commande PHP CLI.
  2. Indiquer le chemin absolu correct vers le répertoire d'installation de votre PrestaShop.
  3. Vérifier le chemin exact du binaire PHP CLI sur votre serveur (ex: /usr/bin/php, /usr/local/bin/php).


Remarque sur la syntaxe CLI : Les commandes CLI n'utilisent pas d'URL https://. Les paramètres sont séparés par des espaces au lieu de ? et &.



Méthode 2 : Contourner Cloudflare via un sous-domaine non proxifié (Alternative pour les crons HTTP)


Si votre installation exige impérativement une exécution des crons par URL HTTP et ne peut pas utiliser la CLI, sachez que Cloudflare ne permet pas de désactiver son proxy ("Nuage orange") pour un dossier spécifique au sein d'un même domaine.


Pour contourner Cloudflare en HTTP, votre administrateur serveur peut configurer un sous-domaine dédié et non proxifié :


Étapes de mise en place :

  1. Créer un sous-domaine dédié : Configurez un hôte virtuel ou un sous-domaine séparé spécifiquement réservé aux tâches administratives (ex: bo.myshop.com).
  2. Lier le répertoire : Faites pointer ce sous-domaine directement sur votre installation PrestaShop ou créez un lien symbolique / un montage bind du dossier requis dans la racine du document de ce sous-domaine.
  3. Désactiver le proxy Cloudflare (Nuage gris) : Dans votre panneau DNS Cloudflare, passez l'enregistrement DNS de bo.myshop.com en DNS Only (icône de nuage gris au lieu du nuage orange).
  4. Mettre à jour l'URL du cron : Exécutez vos tâches cron HTTP en utilisant l'URL du sous-domaine non proxifié (ex: https://bo.myshop.com/modules/amazonsaas/functions/check_stock.php?...).


Avertissement de sécurité : Désactiver le proxy Cloudflare (nuage gris) sur un sous-domaine révèle la véritable adresse IP de votre serveur à quiconque connaît ce sous-domaine.



Méthode 3 : Augmenter le timeout Cloudflare


Si vous disposez d'un abonnement Cloudflare Enterprise, vous pouvez demander une augmentation de la limite de timeout HTTP directement auprès du support Cloudflare. Cependant, cette solution reste généralement peu rentable ou irréaliste pour des hébergements standard.



Recommandation finale


Pour les catalogues volumineux et les synchronisations fréquentes, la Méthode 1 (PHP CLI) est la solution la plus stable et efficace. Elle élimine totalement les limitations de timeout Cloudflare tout en évitant d'exposer l'adresse IP réelle de votre serveur.

Mis à jour le : 04/08/2026

Cet article a-t-il répondu à vos questions ?

Partagez vos commentaires

Annuler

Merci !