Subticket Manager: Fehlerbehebung
Fehlerbehebung für den osTicket Subticket Manager: Panel fehlt, Queue-Icons fehlen, Verknüpfen scheitert, falsch verknüpfte Tickets, Rate-Limit, Fehler beim Aktivieren, Debug-Log und häufige Fragen.
Subticket Manager: Fehlerbehebung
Panel erscheint nicht in der Ticket-Ansicht
Symptome: Ein Ticket öffnet sich normal, aber der Bereich „Parent Ticket / Child Tickets“ fehlt, oder osTicket zeigt nach dem Aktivieren einen PHP-Fehler.
Prüfen:
- Autoloader: Existiert
include/plugins/<Ordner>/vendor/autoload.php? Ohne diese Datei findet das Plugin seine Klassen nicht. Beim Git-Weg fehlt sie, bis ducomposer install --no-devausgeführt hast. - Plugin aktiv: Unter Verwalten → Plugins muss der Subticket Manager aktiviert sein.
- Staff-Bereich: Das Panel erscheint nur im Staff-Bereich, nicht im Kundenportal.
- JavaScript: Öffne die Browser-Konsole. Steht dort
[Subticket] Failed to load subticket-panel.js, ist die Datei unter<osTicket>/include/plugins/<Ordner>/js/subticket-panel.jsfür den Browser nicht erreichbar, zum Beispiel weil der Webserver den Zugriff aufinclude/sperrt. - Browser-Cache: Lade die Seite mit Strg+Umschalt+R neu.
Queue-Icons fehlen
Symptome: In der Warteschlange erscheint bei Parent-Tickets kein Code-Fork-Icon.
Prüfen:
- Das Skript wirkt nur auf Seiten, deren Pfad
tickets.phpenthält, und nur auf Zeilen mit einem Link der Formtickets.php?id=<ID>. - Rufe als angemeldeter Agent
<osTicket>/scp/ajax-subticket.php?action=batch_parent_status&ticket_ids=15im Browser auf. Die Antwort muss"success": trueenthalten. Existiert die Datei nicht, kopiere sie wie unter Installation beschrieben nachscp/. - Prüfe in der Browser-Konsole auf Meldungen mit dem Präfix
[SubticketManager]. - Das Skript startet 500 ms nach dem Laden der Seite. Ändert osTicket die Tabelle danach per AJAX, lade die Seite neu.
Verknüpfen schlägt fehl
Symptome: Nach Link to Parent erscheint Failed to link tickets oder Invalid parent ticket ID/number.
Prüfen:
- Ticketnummer: Gib die Nummer ein, die im Ticket-Kopf steht, nicht die interne ID. Der Dialog akzeptiert nur Ziffern (höchstens zehn). Enthält deine Nummerierung Buchstaben oder Bindestriche, kann das Panel das Ticket nicht verknüpfen.
- Selbstbezug: Ein Ticket kann nicht sein eigener Parent sein.
- Schleife: Der gewählte Parent darf kein Nachfahre des Tickets sein. Beispiel: Ist A Parent von B und B Parent von C, kannst du C nicht zum Parent von A machen. Trenne zuerst eine Beziehung der Kette.
- Abteilung: Du brauchst Zugriff auf die Abteilung des Child-Tickets. Fehlt er, lautet die Meldung
You do not have access to this ticket.
Das Panel nennt den Grund nicht immer. Bei Fehlern in linkTicket schreibt das Plugin die Ursache mit dem Präfix [SUBTICKET-PLUGIN] ins PHP-Error-Log.
Ticket wurde unerwartet zum Child
Symptome: Ein normal angelegtes Ticket taucht als Child eines anderen Tickets auf.
Ursache: Du hast zuvor Create Subticket geklickt, das Formular aber nicht abgeschickt. Das Plugin behält die Parent-ID in deiner Session, bis ein Ticket angelegt wird.
Lösung: Löse die Verknüpfung über Unlink from Parent. Lege künftig entweder das Subticket an oder melde dich ab, wenn du das Formular verwirfst.
„Too many requests“
Die AJAX-Aktionen children, link, unlink und create erlauben 100 Anfragen pro 60 Sekunden und Session. Danach sperrt das Plugin die Session für 60 Sekunden. Das passiert im normalen Betrieb kaum. Eine Schleife in eigenem Code kann das Limit auslösen.
Fehler beim Aktivieren
Symptome: Das Aktivieren meldet Target directory not writable: ..., Failed to deploy file to scp/... oder Source file not found: ....
Lösung:
- Gib dem Webserver-Benutzer Schreibrechte auf das Verzeichnis
scp/. - Prüfe, ob der Ordner
scp-files/mit den drei Dateien im Plugin-Ordner vorhanden ist. - Kopiere die Dateien alternativ per Hand (siehe Installation).
HTTP 500 von ajax-subticket.php
| Meldung | Ursache |
|---|---|
SubticketPlugin not found |
Unter include/plugins/*/ liegt keine Datei class.SubticketPlugin.php |
Multiple SubticketPlugin installations detected |
Das Plugin liegt mehrfach vor. Entferne die überzählige Kopie |
Controller not found |
ajax/SubticketController.php fehlt im Plugin-Ordner |
Debug-Log auswerten
Mit SUBTICKET_DEBUG schreibt das Plugin nach /tmp/subticket-debug.log. Typische Zeilen:
Stored subticket_parent in session: 15undAuto-linking ticketzeigen den Auto-Link-Ablauf.onTicketView() calledzeigt, dass das Panel gerendert wird.Deploying fileundFile deployedzeigen das Kopieren nachscp/.
Das Log enthält Ticketdaten. Deaktiviere den Debug-Modus nach der Analyse.
Häufige Fragen
Schließt das Plugin Parent-Tickets automatisch?
Nein. Das Plugin ändert keinen Ticket-Status. Die Konfigurationsfelder dazu (zum Beispiel „Auto-close Parent Ticket“) sind ohne Funktion.
Gibt es eine Baumansicht oder Batch-Funktionen?
Nein. Die Übersichtsseite listet bestehende Beziehungen, höchstens 100 Child-Tickets.
Kann ein Ticket mehrere Parents haben?
Nein. osTicket speichert pro Ticket genau eine ticket_pid.
Wie viele Ebenen sind erlaubt?
Das Plugin begrenzt die Tiefe nicht. Die Schleifenprüfung folgt der Kette höchstens zehn Ebenen weit.
Was bleibt nach dem Deinstallieren?
Die Verknüpfungen in ticket_pid bleiben immer. Tabellen, Spalte version und Indizes entfernt das Plugin nur mit aktiver Option Remove Data on Uninstall, und die beiden Befehle für Spalte und Index funktionieren nur auf MariaDB.
Funktioniert das Plugin mit einem anderen Tabellenpräfix als ost_?
Nein. Alle Abfragen verwenden ost_ fest.
Kann ich Subtickets per REST-API verwalten?
Ja, über das Plugin API Endpoints. Details unter Erweitern und Integration.