Mise à jour bloquée : commonsubtotal.class.php introuvable

Pendant une mise à jour vers la 22, la 23 ou la 24, l'assistant s'arrête sur un fichier subtotals introuvable. Ce n'est pas un module externe : la copie des fichiers est incomplète.

Versions concernées
Passage d'une version 21 ou plus ancienne vers la 22, la 23 ou la 24 · testé de 21.0.4 vers 24.0.1
Ce qui a été vérifié
Testé le 4 octobre 2026 : vraie mise à jour 21.0.424.0.1 par l'assistant, dossier subtotals/ retiré ; message obtenu à l'étape de migration des données, puis migration terminée une fois le dossier remis. Numéro de ligne vérifié en 22.0.5 (53), 23.0.4 (54) et 24.0.1 (55). Présence du dossier contrôlée dans le code officiel : absent en 20.0.4 et 21.0.4, présent de 22.0.0 à 24.0.2.

Vous mettez Dolibarr à jour. À l’étape de migration des données, l’assistant s’arrête sur ce message :

Warning: require_once(../subtotals/class/commonsubtotal.class.php): Failed to open stream:
No such file or directory in …/compta/facture/class/facture.class.php on line 55

Il est suivi d’une erreur fatale « Failed opening required ». Le numéro de ligne est 53 en version 22, 54 en 23 et 55 en 24. Sous PHP 7, le message commence par « failed », en minuscule.

Si votre serveur n’affiche pas les erreurs, vous voyez seulement une page blanche (erreur 500) : le même message est alors dans le journal d’erreurs de PHP.

Ce n’est pas un module externe

On pense d’abord à un ancien module de sous-totaux. Ce n’en est pas un : le dossier subtotals/ fait partie de Dolibarr lui-même depuis la version 22. Les modules externes, eux, s’installent dans custom/.

Le message dit donc deux choses :

  • facture.class.php est déjà celui de la nouvelle version. C’est lui qui réclame le fichier.
  • Le dossier subtotals/ n’est pas arrivé sur le serveur.

Le ../ au début du chemin est normal : pendant la mise à jour, Dolibarr travaille depuis le dossier install/, où la racine est définie comme « le dossier du dessus ».

La cause : une copie de fichiers incomplète

Les fichiers existants ont été remplacés, mais le dossier subtotals/, nouveau en version 22, n’a pas été créé. C’est le cas par exemple après un transfert interrompu, ou si l’on n’a copié que les fichiers modifiés. S’il manque un dossier, d’autres fichiers peuvent manquer aussi.

La solution

  1. Regardez sur le serveur si le dossier subtotals/ existe à la racine de Dolibarr, à côté de compta/, comm/ et install/.
  2. S’il manque, recopiez tout le contenu du dossier htdocs de l’archive de la version visée par-dessus votre installation, sans supprimer votre conf/conf.php ni le dossier custom/.
  3. Relancez l’assistant de mise à jour (/install/).

Ne recopiez pas seulement subtotals/ : si un dossier manque, la copie entière est douteuse.

Comment cela a été vérifié

  • Vraie mise à jour d’une instance 21.0.4 vers 24.0.1 avec l’assistant, dossier subtotals/ retiré : l’étape de structure passe, l’étape de migration des données s’arrête sur ce message, ligne 55 comprise (page blanche, message dans le journal PHP). Dossier remis : « Migration finished ».
  • Même message en 22.0.5 (ligne 53) et en 23.0.4 (ligne 54). « failed » en minuscule sous PHP 7.4.
  • Dans le code officiel, le dossier subtotals/ est absent des versions 20.0.4 et 21.0.4, et présent de la 22.0.0 à la 24.0.2.

La procédure complète, avec la sauvegarde et le retour arrière, est décrite dans Mettre à jour Dolibarr sans casse. Si la mise à jour passe mais qu’une page reste blanche ensuite, voyez Erreur 500 ou page blanche dans Dolibarr.

Si la mise à jour reste bloquée

Si le dossier est bien là et que l’assistant s’arrête toujours, le diagnostic à 90 € consiste à regarder votre installation avec vous pendant une heure, puis à vous remettre par écrit la cause et ce que coûterait la correction.

Dolibarrmise à joursubtotalscommonsubtotalrequire_onceFailed to open stream