# Mise à jour échouée : « L’archive n’a pas pu être installée »

> « La mise à jour a échoué » ou « L’archive n’a pas pu être installée » : lisez le motif exact, corrigez droits, disque ou réseau, ou mettez à jour par WP-CLI.

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

> La mise à jour d’une extension, d’un thème ou du cœur s’est arrêtée, et le motif suit « La mise à jour a échoué : ». Vérifiez l’espace disque, les droits d’écriture de wp-content et l’accès sortant, puis relancez.

Vous cliquez sur « Mettre à jour maintenant » et, au lieu de la confirmation attendue, une ligne rouge apparaît : « La mise à jour a échoué : … », suivie d’un motif qui change selon la situation. Il peut s’agir de « L’archive n’a pas pu être installée. », de « Impossible de créer le dossier. », de « Le téléchargement a échoué. » ou d’une autre phrase. Sur l’écran de mise à jour du cœur, le message est plutôt « Échec de l’installation ». L’erreur est visible dans l’administration (extensions, thèmes, tableau de bord des mises à jour) ou dans le terminal avec WP-CLI.

Elle ne dit pas ce qui ne va pas : c’est le **motif qui suit** qui compte. Cette fiche vous apprend à le lire, à identifier la cause réelle (disque, droits, réseau, archive corrompue) et à terminer la mise à jour proprement, y compris sans passer par l’administration.

## Ce que signifie cette erreur

Les mises à jour passent par la classe `WP_Upgrader` (`wp-admin/includes/class-wp-upgrader.php`) et ses dérivées `Plugin_Upgrader`, `Theme_Upgrader` et `Core_Upgrader`. La séquence est toujours la même : se connecter au système de fichiers, télécharger l’archive ZIP dans un dossier temporaire, la décompresser dans `wp-content/upgrade/`, activer le mode maintenance, remplacer les fichiers, puis nettoyer. Avant de remplacer une extension ou un thème, WordPress déplace l’ancienne version dans `wp-content/upgrade-temp-backup/` afin de pouvoir la restaurer si l’étape suivante échoue.

Chaque étape peut renvoyer une erreur dont le texte est défini dans `generic_strings()`. Dans l’interface, le script `wp-admin/js/updates.js` préfixe ce texte par « La mise à jour a échoué : », ou affiche « Échec de mise à jour. » sur le bouton de la carte d’une extension. Les motifs les plus courants sont :

| Motif affiché | Étape concernée | Cause habituelle |
| --- | --- | --- |
| Le téléchargement a échoué. | Téléchargement de l’archive | Pas d’accès sortant vers wordpress.org, délai dépassé, pare-feu (voir la fiche cURL error 28) |
| Impossible de créer le dossier. | Décompression ou copie | Droits d’écriture ou propriétaire des fichiers (voir la fiche dédiée) |
| L’archive n’a pas pu être installée. | Décompression | Archive corrompue ou vide, extension ZIP défaillante, disque plein |
| Le dossier de destination existe déjà. | Installation d’une nouvelle extension ou d’un nouveau thème | Un dossier du même nom existe déjà dans `wp-content` |
| La mise à jour ne peut pas être installée car certains fichiers n’ont pas pu être copiés… | Copie des fichiers | Droits incohérents sur certains fichiers |
| Impossible de supprimer l’ancienne extension. | Remplacement de l’extension | Fichiers verrouillés ou non supprimables |
| Impossible de copier les fichiers. Il se pourrait que vous manquiez de place. | Copie (cœur) | Disque ou quota saturé |
| Une autre mise à jour est actuellement en cours. | Verrou du cœur | Voir la fiche sur ce verrou |

## Diagnostic rapide

| Symptôme / constat | Cause probable | À vérifier |
| --- | --- | --- |
| Le motif cite le téléchargement ou un délai | Réseau sortant bloqué ou lent | Santé du site, `curl -I https://api.wordpress.org/` depuis le serveur |
| Le motif cite un dossier ou des fichiers non copiés | Droits ou propriétaire incorrects | `ls -ld wp-content wp-content/upgrade`, utilisateur PHP |
| Le motif cite l’archive, ou la mise à jour s’arrête sans message | Disque plein, mémoire ou temps d’exécution dépassés | `df -h`, `df -i`, journal d’erreurs PHP |
| Le site reste en maintenance après l’échec | Fichier `.maintenance` resté en place | Racine du site, fiche maintenance bloquée |
| Une seule extension échoue, les autres passent | Archive ou version incompatible de cette extension | Mise à jour manuelle, éditeur de l’extension |

## Les causes les plus fréquentes

1. Des droits d’écriture ou un propriétaire de fichiers incorrects sur `wp-content` : l’utilisateur de PHP ne peut pas créer ou remplacer les dossiers.
2. Un disque ou un quota saturé, ou un manque d’inodes, ce qui interrompt la décompression ou la copie.
3. Un accès sortant bloqué ou lent : pare-feu, résolution DNS défaillante, proxy mal configuré.
4. Une limite de mémoire ou de temps d’exécution PHP atteinte sur un hébergement mutualisé, surtout pour les mises à jour en masse.
5. Un dossier `wp-content/upgrade` dans un état incohérent après une mise à jour précédente interrompue.
6. Une extension ou un thème dont l’archive est corrompue, ou dont la mise à jour est incompatible avec la version de PHP ou de WordPress.

## Solutions pas à pas

### 1. Lire le motif et relancer la mise à jour

Notez le texte exact après « La mise à jour a échoué : ». Rechargez la page des mises à jour (Ctrl+F5), puis relancez une seule mise à jour à la fois. Un échec ponctuel de téléchargement, ou une mise à jour interrompue par un onglet fermé, se règle souvent ainsi. Évitez de lancer plusieurs mises à jour en parallèle : si le site affiche un message de maintenance, consultez la fiche [maintenance bloquée](https://www.wpmoderne.fr/erreurs-wordpress/maintenance-bloquee/) ; si WordPress annonce « Une autre mise à jour est actuellement en cours », voyez la fiche [autre mise à jour en cours](https://www.wpmoderne.fr/erreurs-wordpress/autre-mise-a-jour-en-cours/).

### 2. Vérifier l’espace disque

Depuis SSH ou le gestionnaire de fichiers de l’hébergeur :

```
df -h /home/monsite
df -i /home/monsite      # inodes : un disque peut être plein de petits fichiers
du -sh wp-content/* | sort -h | tail
```

Supprimez les sauvegardes anciennes, les journaux volumineux et les caches. Notre article sur le [disque plein sur un serveur WordPress](https://www.wpmoderne.fr/hebergement/disque-plein-serveur-wordpress-identifier-vite/) détaille la recherche des gros consommateurs. Prévoyez une marge équivalente à plusieurs fois la taille de l’extension à mettre à jour.

### 3. Contrôler les droits et le propriétaire des fichiers

Si le motif mentionne un dossier ou des fichiers qui n’ont pas pu être créés ou copiés, la cause est presque toujours là. Comparez le propriétaire des dossiers à l’utilisateur qui exécute PHP :

```
ps -eo user,comm | grep -E "php-fpm|apache2|httpd" | sort -u
stat -c '%U:%G %a %n' wp-content wp-content/plugins wp-content/themes wp-content/upgrade
```

La fiche [« Impossible de créer le dossier »](https://www.wpmoderne.fr/erreurs-wordpress/impossible-creer-dossier/) détaille la correction (propriétaire, `FS_METHOD`, FTP) et l’article [Permissions de fichiers WordPress](https://www.wpmoderne.fr/securite/permissions-fichiers-wordpress/) donne les valeurs recommandées. Si WordPress vous demande des identifiants FTP, c’est qu’il n’arrive pas à écrire directement dans les dossiers : la même fiche explique pourquoi.

### 4. Nettoyer le dossier upgrade et le mode maintenance

Après un échec, vérifiez qu’aucun résidu ne gêne. **Sauvegardez le site d’abord**. Aucune mise à jour ne doit être en cours :

```
ls -la .maintenance 2>/dev/null     # à la racine du site
ls -la wp-content/upgrade wp-content/upgrade-temp-backup
rm -rf wp-content/upgrade/*
```

Le dossier `wp-content/upgrade` est vidé automatiquement par WordPress avant chaque décompression (`unpack_package()`) : le nettoyer à la main ne risque rien tant qu’aucune mise à jour ne tourne. Ne touchez à `upgrade-temp-backup` que si vous savez que la version précédente n’est plus nécessaire. Si un fichier `.maintenance` subsiste, supprimez-le.

### 5. Vérifier l’accès sortant

Si le motif parle du téléchargement, testez la connexion depuis le serveur :

```
curl -sS -o /dev/null -w "%{http_code} %{time_total}s\n" https://api.wordpress.org/core/version-check/1.7/
wp eval 'var_dump( wp_remote_retrieve_response_code( wp_remote_get( "https://downloads.wordpress.org" ) ) );'
```

Un code différent de 200 ou un délai dépassé pointe vers un pare-feu ou un DNS : voyez la fiche [cURL error 28](https://www.wpmoderne.fr/erreurs-wordpress/curl-error-28/). L’écran **Outils > Santé du site** signale aussi les problèmes d’accès sortant et de système de fichiers.

### 6. Mettre à jour en ligne de commande ou manuellement

Quand l’interface échoue, WP-CLI donne le détail de l’erreur et contourne la limite de temps du navigateur :

```
wp plugin update nom-de-l-extension
wp plugin update --all
wp theme update --all
wp core update
wp core verify-checksums
```

Pour une extension dont l’archive pose problème, forcez la réinstallation de la version voulue avec `wp plugin install nom-de-l-extension --force`. En dernier recours, téléchargez l’archive, décompressez-la, puis remplacez le dossier de l’extension par SFTP : vos réglages, stockés en base de données, ne sont pas touchés. Cette méthode permet aussi de contourner un hébergement qui coupe les longues requêtes.

### 7. Restaurer une version qui fonctionne

Si le site est cassé après l’échec, restaurez la sauvegarde la plus récente, ou remettez l’ancien dossier de l’extension depuis `wp-content/upgrade-temp-backup/plugins/` quand il s’y trouve encore. Un site qui affiche une page d’erreur critique après la mise à jour se traite en désactivant l’extension concernée. Prévoyez ce retour arrière avant d’en avoir besoin, avec un plan de sauvegarde et de reprise testé.

## Prévenir l’erreur

- Faites une sauvegarde complète avant toute mise à jour importante, et testez-la.
- Surveillez l’espace disque et les inodes, et purgez les anciennes sauvegardes automatiquement.
- Alignez le propriétaire des fichiers sur l’utilisateur de PHP, ou fixez `FS_METHOD` en connaissance de cause.
- Mettez à jour les extensions une par une plutôt qu’en masse sur un hébergement mutualisé, et testez d’abord sur une préproduction.
- Décidez en connaissance de cause de ce que vous laissez se mettre à jour automatiquement, et à quel moment.

## FAQ
