Markus Michalski FAQ

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.

English Version

Zurück zur Übersicht

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:

  1. Autoloader: Existiert include/plugins/<Ordner>/vendor/autoload.php? Ohne diese Datei findet das Plugin seine Klassen nicht. Beim Git-Weg fehlt sie, bis du composer install --no-dev ausgeführt hast.
  2. Plugin aktiv: Unter Verwalten → Plugins muss der Subticket Manager aktiviert sein.
  3. Staff-Bereich: Das Panel erscheint nur im Staff-Bereich, nicht im Kundenportal.
  4. 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.js für den Browser nicht erreichbar, zum Beispiel weil der Webserver den Zugriff auf include/ sperrt.
  5. 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:

  1. Das Skript wirkt nur auf Seiten, deren Pfad tickets.php enthält, und nur auf Zeilen mit einem Link der Form tickets.php?id=<ID>.
  2. Rufe als angemeldeter Agent <osTicket>/scp/ajax-subticket.php?action=batch_parent_status&ticket_ids=15 im Browser auf. Die Antwort muss "success": true enthalten. Existiert die Datei nicht, kopiere sie wie unter Installation beschrieben nach scp/.
  3. Prüfe in der Browser-Konsole auf Meldungen mit dem Präfix [SubticketManager].
  4. 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:

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:

  1. Gib dem Webserver-Benutzer Schreibrechte auf das Verzeichnis scp/.
  2. Prüfe, ob der Ordner scp-files/ mit den drei Dateien im Plugin-Ordner vorhanden ist.
  3. 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:

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.