# « Une autre mise à jour est actuellement en cours » : débloquer

> « Une autre mise à jour est actuellement en cours » : le verrou core_updater.lock expire après 15 minutes. Lire, supprimer le verrou et relancer.

- Auteur : WordPress Développement
- Publié le : 2026-10-02
- Mis à jour le : 2026-10-02
- URL : https://www.wpmoderne.fr/erreurs-wordpress/autre-mise-a-jour-en-cours/

> WordPress a posé un verrou (option core_updater.lock) au début d’une mise à jour du cœur et ne l’a pas encore retiré. Patientez 15 minutes : le verrou expire seul. Sinon, supprimez l’option après sauvegarde, si rien ne tourne.

Vous ouvrez **Tableau de bord > Mises à jour**, vous cliquez sur « Mettre à jour vers la version… » et la page affiche, dans le journal de l’opération : « Une autre mise à jour est actuellement en cours. » Rien ne s’installe, et WordPress n’ajoute pas son habituel « Échec de l’installation » : seul ce texte s’affiche. L’erreur concerne la mise à jour **du cœur de WordPress**, et elle apparaît dans l’administration.

C’est une protection : WordPress refuse de lancer deux mises à jour du cœur en même temps pour éviter qu’elles s’écrasent mutuellement. Le problème est que la protection peut rester active après une mise à jour qui s’est mal terminée. Voici comment savoir si une mise à jour tourne vraiment, et comment retirer le verrou sans risque.

## Ce que signifie cette erreur

Au début d’une mise à jour du cœur, la méthode `Core_Upgrader::upgrade()` (`wp-admin/includes/class-core-upgrader.php`) demande un verrou : `WP_Upgrader::create_lock( 'core_updater', 15 * MINUTE_IN_SECONDS )`. Le verrou est une simple ligne dans la table des options, nommée `core_updater.lock`, dont la valeur est l’horodatage Unix de sa création. L’insertion se fait par une requête `INSERT IGNORE` (`wp-admin/includes/class-wp-upgrader.php`, méthode `create_lock()`).

Si la ligne existe déjà, WordPress compare son horodatage à l’heure courante : tant qu’il date de moins de 15 minutes, le verrou est considéré valide, la méthode renvoie `false` et `upgrade()` retourne l’erreur `locked` avec le texte « Une autre mise à jour est actuellement en cours. ». Si le verrou a plus de 15 minutes, WordPress le supprime et en recrée un. À la fin normale de la mise à jour, ou sur la plupart des erreurs gérées, le verrou est libéré par `release_lock()`. En revanche, si PHP s’arrête brutalement (erreur fatale, délai dépassé, processus tué, connexion coupée), personne ne le libère : il reste jusqu’à son expiration.

Il existe un second verrou, `auto_updater.lock`, pris par `WP_Automatic_Updater::run()` pour les mises à jour automatiques, avec une durée par défaut d’une heure. Il ne produit pas ce message, mais il montre qu’une tâche automatique est en cours.

## Diagnostic rapide

| Symptôme / constat | Cause probable | À vérifier |
| --- | --- | --- |
| Le message apparaît quelques minutes après une tentative de mise à jour interrompue | Verrou posé par la tentative précédente, pas encore expiré | Patienter 15 minutes, puis relancer |
| Le message apparaît sans que vous ayez rien lancé | Mise à jour automatique en cours (WP-Cron) ou lancée par un autre administrateur | Tâches planifiées, mises à jour automatiques, journal |
| Le message persiste plus de 15 minutes | Horodatage du verrou incohérent (dans le futur), horloge du serveur décalée, tentatives répétées | Valeur de `core_updater.lock` et heure du serveur |
| Le site est en maintenance et le message apparaît | Mise à jour interrompue qui a laissé `.maintenance` et le verrou | Racine du site, fiche maintenance bloquée |
| Le message revient à chaque tentative, même après suppression du verrou | La mise à jour échoue en cours de route et laisse un verrou | Journal d’erreurs PHP, droits, espace disque |

## Les causes les plus fréquentes

1. Une mise à jour du cœur interrompue (onglet fermé, coupure réseau, limite de temps ou de mémoire PHP) dont le verrou n’a pas encore atteint ses 15 minutes.
2. Deux lancements simultanés : double clic, deux administrateurs, ou une mise à jour manuelle pendant qu’une mise à jour automatique du cœur est déjà en cours.
3. Un hébergement lent ou mutualisé où la mise à jour dure plus longtemps que prévu et où un nouvel essai est lancé trop tôt.
4. Une horloge de serveur décalée, ou un verrou dont l’horodatage est dans le futur, qui ne devient donc jamais périmé.
5. Une mise à jour qui échoue systématiquement pour une autre raison (droits, disque, réseau) et qui laisse un verrou à chaque essai.

## Solutions pas à pas

### 1. Attendre quinze minutes

À appliquer d’abord, sans rien toucher. Ne relancez rien pendant ce délai : une deuxième tentative n’aurait aucun effet, et si une mise à jour tourne réellement, vous risqueriez de la gêner. Au bout de 15 minutes, rechargez **Tableau de bord > Mises à jour** et relancez. Si le verrou est périmé, WordPress le remplace automatiquement.

### 2. Lire le verrou et vérifier qu’aucun processus ne tourne

Si le message persiste, regardez l’état réel. Depuis phpMyAdmin ou en ligne de commande (adaptez le préfixe de table `wp_`) :

```
SELECT option_name,
       FROM_UNIXTIME(CAST(option_value AS UNSIGNED)) AS pose_le,
       UNIX_TIMESTAMP() - CAST(option_value AS UNSIGNED) AS age_en_secondes
FROM wp_options
WHERE option_name IN ('core_updater.lock', 'auto_updater.lock');
```

Un âge inférieur à 900 secondes signifie que le verrou est encore valide ; un âge négatif indique un horodatage dans le futur, donc un verrou qui ne se libérera pas seul. Contrôlez aussi qu’aucune mise à jour automatique n’est active, et l’heure du serveur :

```
wp option get core_updater.lock
wp cron event list --fields=hook,next_run_relative
ps aux | grep -E "wp core|wp-cron|php-fpm: pool" | grep -v grep
date +%s
```

Comparez la valeur de l’option avec `date +%s`. Si une mise à jour semble bien en cours (processus actif, fichiers qui changent dans `wp-includes`), attendez qu’elle se termine.

### 3. Supprimer le verrou

À appliquer quand le verrou date de plus de 15 minutes mais bloque quand même, ou quand son horodatage est dans le futur, et seulement si vous avez vérifié qu’aucune mise à jour ne tourne. **Faites une sauvegarde de la base avant de modifier la table des options** (voir notre article sur les [sauvegardes et plans de reprise](https://www.wpmoderne.fr/securite/sauvegardes-plan-de-reprise-wordpress/)). Avec WP-CLI :

```
wp option delete core_updater.lock
```

Sans WP-CLI, depuis phpMyAdmin :

```
DELETE FROM wp_options WHERE option_name = 'core_updater.lock';
```

Si le site utilise un cache d’objets persistant (Redis, Memcached), videz-le ensuite avec `wp cache flush` ou depuis l’extension, pour qu’une ancienne valeur ne continue pas d’être lue.

### 4. Remettre le site en état, puis relancer la mise à jour

Une mise à jour interrompue peut avoir laissé un fichier `.maintenance` à la racine et des fichiers dans `wp-content/upgrade`. Supprimez le fichier `.maintenance` s’il existe, comme l’explique la fiche [maintenance bloquée](https://www.wpmoderne.fr/erreurs-wordpress/maintenance-bloquee/), puis relancez la mise à jour depuis l’administration ou en ligne de commande, qui évite les limites de temps du navigateur :

```
wp core update
wp core verify-checksums
wp core update-db
```

`wp core verify-checksums` compare les fichiers du cœur aux sommes de contrôle officielles et révèle une mise à jour restée à moitié faite. La dernière commande n’est utile que si WordPress demande une mise à niveau de la base de données.

### 5. Traiter la cause si l’erreur revient

Un verrou qui réapparaît à chaque essai signifie que la mise à jour s’interrompt toujours au même endroit. Consultez le journal d’erreurs PHP et la fiche [mise à jour échouée](https://www.wpmoderne.fr/erreurs-wordpress/mise-a-jour-echouee/) : droits d’écriture, disque saturé, mémoire insuffisante ou accès sortant bloqué sont les suspects habituels. Si l’échec concerne les droits, la fiche [« Impossible de créer le dossier »](https://www.wpmoderne.fr/erreurs-wordpress/impossible-creer-dossier/) détaille la correction.

### 6. Éviter les collisions avec les mises à jour automatiques

Si vous lancez souvent les mises à jour à la main, sachez qu’une mise à jour automatique peut démarrer en même temps. Vous pouvez la suspendre pendant votre intervention dans `wp-config.php` :

```
define( 'AUTOMATIC_UPDATER_DISABLED', true );
```

Retirez la ligne ensuite : désactiver durablement les mises à jour automatiques vous prive des correctifs de sécurité. Notre guide sur les [mises à jour automatiques de WordPress](https://www.wpmoderne.fr/securite/mises-a-jour-automatiques-wordpress/) aide à décider jusqu’où les activer.

## Prévenir l’erreur

- Lancez une seule mise à jour du cœur à la fois, et ne fermez pas l’onglet avant le message de confirmation.
- Pour les sites lents ou volumineux, privilégiez `wp core update` en ligne de commande, qui n’est pas soumis à la limite de temps du navigateur.
- Prévenez les autres administrateurs avant une opération de maintenance, et coordonnez-la avec les mises à jour automatiques.
- Gardez l’horloge du serveur synchronisée (NTP) : un verrou dans le futur ne se libère pas.
- Faites une sauvegarde complète avant chaque mise à jour du cœur.

## FAQ
