# Debugging

# Fehleranalyse und Debugging

Im Folgenden wird das Vorgehen zur Identifizierung von Systemproblemen beschrieben.

1. Laufen Arbeiten an anderen erforderlichen Systemen oder Infrastruktur parallel? Z.B. Netz, Storage, VM oder IDM
2. Server-Überwachung checken: 
    1. System überlastet? Storage voll gelaufen? CPU-Last?
3. Webserver + DB überprüfen 
    1. Läuft der Webserver?
    2. Ist genügend Speicherplatz frei? `<span class="ms-rteFontFace-2">df -h</span>`
    3. <span class="ms-rteFontFace-2"><span class="ms-rteThemeFontFace-1">Läuft die Datenbank und hat genügend Speicherplatz?</span>  
        </span>
4. Was wurde zuletzt geändert; mögliche Auslöser für Probleme? Changelog sichten.
5. Cronjobs überprüfen 
    1. Läuft der Linux-cron korrekt?
    2. Werden die "Geplanten Vorgänge" sauber abgearbeitet? `/admin/tool/task/scheduledtasks.php`
    3. Cron oder einzelne Tasks ggf. manuell ausführen?
6. Log-Dateien analysieren + Moodle-Konfiguration  
    
    1. Siehe auch Moodle Webserver
    2. Alle Systemklicks nachvollziehbar unter: `/report/log`
    3. Konfigurationsänderungen: `/report/configlog/index.php`
    4. Login via Debug-user ([$CFG-&gt;debugusers = '2';](https://docs.moodle.org/en/Debugging#In_config.php "Moodle Docs: Debug-user einrichten")), der für alle Aktionen im "Developer-Modus" agiert und Fehlermeldungen direkt im Browser anzeigt
7. Moodle-Dateien  
    
    1. Wurden Plugins aktualisiert?
    2. Haben die Moodle-Dateien die erforderlichen Rechte?
8. Viren-Scanner 
    1. Blockiert der Viren-Scanner etwas?
    2. Gibt es massive Performance-Beeinträchtigungen durch Viren-Scanner?
9. Netzwerk + Firewall 
    1. Sind alle benötigten Freigaben erteilt auf Webservern und ggf. Loadbalancer?
    2. IPv6/v4; funktioniert beides? Z.B. testen mit <span class="ms-rteFontFace-2">curl -4 https://moodle-an-hochschulen.de/</span>
    3. Netzwerkverkehr analysieren, z.B. via   
        `tcpdump -i any -nn host [Moodle-Server]`  
        tcpdump-Erklärungen: [https://xinux.net/index.php/Tcpdump\_grundlagen](https://xinux.net/index.php/Tcpdump_grundlagen "tcpdump-Grundlagen") + [https://geekflare.com/tcpdump-examples/](https://geekflare.com/tcpdump-examples/ "tcpdump-Beispiele")  
        in eine Datei schreiben: `-w [Dateiname]`

<div id="bkmrk-">  
</div><div id="bkmrk--1"></div>## Debug-Modus aktivieren mittels config.php 

```bash
//=========================================================================
// 7. SETTINGS FOR DEVELOPMENT SERVERS - not intended for production use!!!
//=========================================================================
//
// Force a debugging mode regardless the settings in the site administration
@error_reporting(E_ALL | E_STRICT);   // NOT FOR PRODUCTION SERVERS!
@ini_set('display_errors', '1');      // NOT FOR PRODUCTION SERVERS!
$CFG->debug = (E_ALL | E_STRICT);     // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
$CFG->debugdisplay = 1;               // NOT FOR PRODUCTION SERVERS!
```

siehe auch: [https://docs.moodle.org/en/Debugging#In\_config.php](https://docs.moodle.org/en/Debugging#In_config.php)

## Bekannte Errors

### Ungültige Kursmodul-ID (core\_error invalidcoursemodule)

Wenn ein Kurs nicht mehr regulär aufgerufen werden kann und stattdessen die Fehlermeldung *"Ungültige Kursmodul-ID"* (lang-string *invalidcoursemodule* in *core\_error*) angezeigt wird, liegt dies oft an Fehlern in der Reihenfolge von Kursabschnitten oder Kursmodulen. Dann hilft meist die Ausführung des CLI-Skripts fix\_course\_sequence.php (ohne *--fix* nur Prüfung auf Fehler):

```
php admin/cli/fix_course_sequence.php -c=* --fix
```

Siehe auch [Moodle-Docs Reihenfolge der Kursmodule reparieren](https://docs.moodle.org/de/Administration_%C3%BCber_Kommandozeile#Reihenfolge_der_Kursmodule_reparieren "Reihenfolge der Kursmodule reparieren (Moodle Docs)")

## Weiterführendes

Debugging allgemein: [https://docs.moodle.org/en/Debugging](https://docs.moodle.org/en/Debugging "Moodle Docs: Debugging")

Debug-Informationen konfigurieren: [https://docs.moodle.org/en/Debugging#Debug\_messages](https://docs.moodle.org/en/Debugging#Debug_messages "Moodle Docs: Debug messages Einstellungen")

---

Autor: [Klaus Steitz](https://forum.moodle-an-hochschulen.de/user/view.php?id=44 "Profil von Klaus Steitz"), Technische Universität Darmstadt

# Plugin tool_userdebug

Moodle Admins können den Debug-Modus immer aktivieren. Anderen Nutzern kann man für ihre (globale) Rolle die **Capability** <span style="color: rgb(22, 145, 121);">`tool/userdebug:adhocdebug`</span> geben (Adhoc Debugging) oder sie fest in die Liste der Debug-User eintragen (Permanent Debugging).

## Ressourcen

"With this plugin you can define the debugmode for only some selected users."

[https://moodle.org/plugins/tool\_userdebug](https://moodle.org/plugins/tool_userdebug)

[https://github.com/grabs/moodle-tool\_userdebug](https://github.com/grabs/moodle-tool_userdebug)

## Konfiguration

### Capability setzen

Die Capability <span style="color: rgb(22, 145, 121);">`<span class="cap-desc"><span class="cap-name">tool/userdebug:adhocdebug</span></span>`</span> muss für eine Globale Rolle vergeben werden, damit sie einen Effekt hat!

<span style="color: rgb(0,0,0);">💡Wenn die Capability gesetzt ist, funktioniert der Debug-Modus auch wenn <span style="color: rgb(22, 145, 121);">`loginas`</span> genutzt wird!</span>

### Plugin Einstellungen

*Website-Administration -&gt; Entwicklung -&gt; Nutzerbezogener Debug-Modus*

Zunächst kann man einstellen, wie sich das Plugin verhält, wenn man es aktiviert:

[![grafik.png](https://kb.moodle-an-hochschulen.de/uploads/images/gallery/2025-12/grafik.png)](https://kb.moodle-an-hochschulen.de//uploads/images/gallery/2025-12/PxUgrafik.png)

## Adhoc Debugging

**<span style="color: rgb(0,0,0);">Nutzungsmöglichkeiten:</span>**

A) Debugging via URL Param: <span style="color: rgb(0,128,0);">`&userdebug=1`</span>

B) Aktivieren über das "Käfer"-Symbol in der Menüleiste:

[![grafik.png](https://kb.moodle-an-hochschulen.de/uploads/images/gallery/2025-12/riegrafik.png)](https://kb.moodle-an-hochschulen.de//uploads/images/gallery/2025-12/PxUgrafik.png)

C) Aktivieren über die Nutzer-Einstellungen:

[![grafik.png](https://kb.moodle-an-hochschulen.de/uploads/images/gallery/2025-12/tZzgrafik.png)](https://kb.moodle-an-hochschulen.de//uploads/images/gallery/2025-12/PxUgrafik.png)

## Permanent Debugging

*Website-Administration -&gt; Entwicklung -&gt; Nutzerbezogener Debug-Modus*

[![grafik.png](https://kb.moodle-an-hochschulen.de/uploads/images/gallery/2025-12/scaled-1680-/PxUgrafik.png)](https://kb.moodle-an-hochschulen.de//uploads/images/gallery/2025-12/PxUgrafik.png)

Dies aktiviert den Debug-Modus für die ausgewählten User dauerhaft.

---

Autorin: [Melanie Treitinger, Ruhr-Universität Bochum](https://kb.moodle-an-hochschulen.de/user/melanie-treitinger)

# Error: File is stale and needs to be rebuilt

Die [Moodle Plugin-CI ](https://kb.moodle-an-hochschulen.de/books/entwicklung/page/moodle-development#bkmrk-continuous-integrati)in den Github Actions können folgenden auf die Javascript-Dateien bezogenen Fehler melden:   
"Error: File is stale and needs to be rebuilt".

## Ursache

This means that version of node / dependencies you use locally are different to those used in the Moodle version you run the test on.

## Lösung

Make sure your local version is matching, easiest way to do it is to <span style="color: var(--ds-background-accent-red-bolder,#c9372c);">run `nvm install && nvm use && npm install` **from Moodle root**</span>, <span style="color: var(--ds-text-accent-green,#216e4e);">then navigate to your **plugin dir** and run <span style="color: var(--ds-text-accent-green-bolder,#164b35);">`npx grunt amd`</span></span>, and commit changes in minified files.

## Links / Quellen

[https://github.com/moodlehq/moodle-plugin-ci/issues/319](https://github.com/moodlehq/moodle-plugin-ci/issues/319)

[<span>https://github.com/catalyst/catalyst-moodle-workflows/tree/bbb7b5fba5f8304b8b07ad5534b666202d1751c8?tab=readme-ov-file#amd--grunt-bundling-issues</span>](https://github.com/catalyst/catalyst-moodle-workflows/tree/bbb7b5fba5f8304b8b07ad5534b666202d1751c8?tab=readme-ov-file#amd--grunt-bundling-issues)

---

Autorin: [Melanie Treitinger](https://forum.moodle-an-hochschulen.de/user/profile.php?id=35), Ruhr-Universität Bochum