# CHAPITRE 26 — Diagnostic et résolution des incidents

Lorsqu'un comportement inattendu apparaît, ce chapitre vous guide dans la résolution. Le réflexe à adopter est simple : commencer par la page Diagnostic, lire les journaux, et n'envisager une action plus radicale qu'en dernier recours.

### <span style="color: rgb(35, 111, 161);">Toujours commencer par la page Diagnostic</span>

***Outils → InfraSStudio → onglet Diagnostic***. Le contrôle visuel (vert, orange, rouge) couvre :

- Versions de Dolibarr et de PHP, présence des extensions PHP requises.
- État du module et de sa dépendance Website.
- Présence des cinq tables SQL du module.
- <span style="white-space: pre-wrap;">Permissions d'écriture sur </span>`<span class="editor-theme-code">DOL_DATA_ROOT</span>`.
- Hooks chargés, présence du trigger, déclaration des tâches planifiées.
- Pour chaque site géré : résolution du docroot, mode média, dossier de données.

<p class="callout info">**À retenir —**<span style="white-space: pre-wrap;"> 80 % des incidents signalés sont en réalité une ligne rouge ou orange du Diagnostic ignorée. Demandez systématiquement à toute personne qui rapporte un dysfonctionnement de joindre d'abord cette capture.</span></p>

### <span style="color: rgb(35, 111, 161);">Lire les journaux Dolibarr</span>

<span style="white-space: pre-wrap;">Le module utilise </span>`<span class="editor-theme-code">dol_syslog()</span>`<span style="white-space: pre-wrap;"> pour tracer les opérations sensibles, avec le préfixe </span>`<span class="editor-theme-code">infrasstudio</span>`.

##### **Emplacement**

```
htdocs/documents/dolibarr.log
```

##### **Filtrer les entrées du module**

```
# Toutes les entrées du module
grep "infrasstudio" htdocs/documents/dolibarr.log

# Uniquement les erreurs
grep "infrasstudio.*LOG_ERR" htdocs/documents/dolibarr.log

# Suivi en temps réel pendant qu'un utilisateur reproduit le problème
tail -f htdocs/documents/dolibarr.log | grep infrasstudio
```

<p class="callout info">**Conseil — Activer le niveau DEBUG —**<span style="white-space: pre-wrap;"> Pour traquer un incident subtil, augmentez temporairement le niveau de journalisation Dolibarr (Configuration → Sécurité → Système) à </span>`<span class="editor-theme-code">LOG_DEBUG</span>`. Pensez à le rabaisser une fois le diagnostic terminé.</p>

### <span style="color: rgb(35, 111, 161);">Incidents fréquents et solutions</span>

##### **Le menu InfraS n'apparaît pas dans Outils**

<table id="bkmrk-cause-probablel%27util" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">L'utilisateur ne possède pas la permission </span>

`<span class="editor-theme-code">paramMenu</span>`

.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Onglet Permissions de l'utilisateur, cocher </span>

`<span class="editor-theme-code">paramMenu</span>`

<span style="white-space: pre-wrap;"> dans la section InfraSStudio.</span>

</td></tr></tbody></table>

##### **Les modifications ne sont pas visibles publiquement**

<table id="bkmrk-cause-probablemodifi" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Modifications restées en brouillon sans être publiées.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Cliquer sur « Publier les modifications » dans la barre d'outils. Voir le Chapitre 12.

</td></tr></tbody></table>

##### **L'aperçu affiche une erreur 404**

<table id="bkmrk-cause-probablela-pag" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">La page possède un type\_container </span>

`<span class="editor-theme-code">other</span>`

<span style="white-space: pre-wrap;">, </span>

`<span class="editor-theme-code">menu</span>`

<span style="white-space: pre-wrap;"> ou </span>

`<span class="editor-theme-code">setup</span>`

, et le filtre du noyau la bloque.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Le module corrige automatiquement ce comportement depuis la version 1.8.7. Vérifiez que vous êtes en version 1.8.7 ou supérieure.

</td></tr></tbody></table>

##### **Erreur réseau dans l'éditeur (erreur AJAX)**

<table id="bkmrk-cause-probablesessio" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Session Dolibarr expirée, ou avertissement PHP émis avant les en-têtes HTTP.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Recharger la page Studio (F5). Si le problème persiste, consultez </span>

`<span class="editor-theme-code">dolibarr.log</span>`

<span style="white-space: pre-wrap;"> pour identifier l'erreur PHP réelle.</span>

</td></tr></tbody></table>

##### **Les images téléversées ne s'affichent pas publiquement**

<table id="bkmrk-cause-probablelien-s" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Lien symbolique </span>

`<span class="editor-theme-code">medias</span>`

<span style="white-space: pre-wrap;"> manquant ou cassé en mode native.</span>

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Recréer le lien symbolique avec </span>

`<span class="editor-theme-code">ln -sfn ...</span>`

<span style="white-space: pre-wrap;">, ou basculer le site en mode média </span>

`<span class="editor-theme-code">module</span>`

.

</td></tr></tbody></table>

##### **Les wrappers solution-\*.php ne se génèrent pas**

<table id="bkmrk-cause-probableinfras" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">`<span class="editor-theme-code">INFRASSTUDIO_WEBSITE_KEY</span>`

<span style="white-space: pre-wrap;"> ou </span>

`<span class="editor-theme-code">INFRASSTUDIO_PUBLIC_DOCROOT</span>`

<span style="white-space: pre-wrap;"> non configurées.</span>

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Configurer ces deux constantes dans Outils → InfraSStudio → Configuration → Wrappers.

</td></tr></tbody></table>

##### **Les slots ne se mettent pas à jour après modification du tpl.php**

<table id="bkmrk-cause-probablele-sca" style="width: 100%; border-collapse: collapse; margin: 1rem 0px; font-size: 0.95em;"><colgroup><col style="width: 30%;"></col><col></col></colgroup><tbody><tr><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235); width: 30%;">**Cause probable**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">Le scanner n'a pas été lancé.

</td></tr><tr style="background: rgb(250, 245, 255);"><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);">**Solution**

</td><td style="padding: 0.5rem 1rem; border: 1px solid rgb(229, 231, 235);"><span style="white-space: pre-wrap;">Outils → InfraSStudio → Contenu → bouton « Rescanner ». Ou en ligne de commande : </span>

`<span class="editor-theme-code">php scripts/rescan_slots.php <ref-site></span>`

.

</td></tr></tbody></table>

### <span style="color: rgb(35, 111, 161);">Réinitialiser le module</span>

Si le module se trouve dans un état incohérent (utilisation impossible, erreurs SQL persistantes), vous pouvez le réinitialiser :

1. ***Configuration → Modules → InfraSStudio***<span style="white-space: pre-wrap;"> → cliquer sur </span>**Désactiver**.
2. <span style="white-space: pre-wrap;">Le module sauvegarde toutes ses constantes sous le préfixe </span>`<span class="editor-theme-code">INFRASSTUDIOBKP_</span>`.
3. <span style="white-space: pre-wrap;">Cliquer à nouveau sur </span>**Activer**.
4. Le module restaure ses constantes, recrée les tables manquantes et réenregistre les hooks.

<p class="callout success">**Aucune perte de données —**<span style="white-space: pre-wrap;"> Les valeurs de slot, les médias et les traductions sont conservés dans leurs tables respectives. La désactivation puis réactivation ne touche qu'au descripteur et aux hooks.</span></p>

### <span style="color: rgb(35, 111, 161);">Demander de l'aide</span>

Si rien ne fonctionne, préparez ces trois informations avant toute demande d'aide :

1. Capture d'écran de la page Diagnostic complète.
2. <span style="white-space: pre-wrap;">Les vingt dernières lignes de </span>`<span class="editor-theme-code">dolibarr.log</span>`<span style="white-space: pre-wrap;"> filtrées sur </span>`<span class="editor-theme-code">infrasstudio</span>`.
3. La version exacte du module et de Dolibarr (visibles en haut de la page Diagnostic).

Avec ces trois éléments, n'importe quel développeur connaissant le module peut établir un diagnostic en quelques minutes.

### <span style="color: rgb(35, 111, 161);">Récapitulatif</span>

**Vous savez désormais :**

- Lancer la page Diagnostic comme premier réflexe.
- Lire et filtrer les journaux Dolibarr.
- Identifier les sept incidents fréquents et leurs solutions.
- Réinitialiser le module proprement (désactivation et réactivation).
- Préparer un rapport d'incident efficace en trois étapes.