Symptoms: A ticket opens normally but the "Parent Ticket / Child Tickets" section is missing, or osTicket shows a PHP error after activation.
Check:
include/plugins/<folder>/vendor/autoload.php exist? Without this file the plugin cannot find its classes. On the Git route it is missing until you have run composer install --no-dev.[Subticket] Failed to load subticket-panel.js, the file at <osTicket>/include/plugins/<folder>/js/subticket-panel.js is not reachable for the browser, for example because the web server blocks access to include/.Symptoms: Parent tickets show no code-fork icon in the queue.
Check:
tickets.php, and only on rows with a link of the form tickets.php?id=<ID>.<osTicket>/scp/ajax-subticket.php?action=batch_parent_status&ticket_ids=15 in the browser. The response must contain "success": true. If the file does not exist, copy it to scp/ as described under Installation.[SubticketManager].Symptoms: After Link to Parent the message Failed to link tickets or Invalid parent ticket ID/number appears.
Check:
You do not have access to this ticket.The panel does not always state the reason. For failures in linkTicket the plugin writes the cause with the prefix [SUBTICKET-PLUGIN] to the PHP error log.
Symptoms: A ticket created normally shows up as a child of another ticket.
Cause: You clicked Create Subticket earlier but did not submit the form. The plugin keeps the parent ID in your session until a ticket is created.
Solution: Remove the link with Unlink from Parent. In future either create the subticket or log out when you discard the form.
The AJAX actions children, link, unlink and create allow 100 requests per 60 seconds per session. After that the plugin blocks the session for 60 seconds. This hardly happens in normal use. A loop in your own code can trigger the limit.
Symptoms: Activation reports Target directory not writable: ..., Failed to deploy file to scp/... or Source file not found: ....
Solution:
scp/ directory.scp-files/ folder with the three files exists in the plugin folder.| Message | Cause |
|---|---|
SubticketPlugin not found |
No file class.SubticketPlugin.php exists under include/plugins/*/ |
Multiple SubticketPlugin installations detected |
The plugin exists more than once. Remove the extra copy |
Controller not found |
ajax/SubticketController.php is missing in the plugin folder |
With SUBTICKET_DEBUG the plugin writes to /tmp/subticket-debug.log. Typical lines:
Stored subticket_parent in session: 15 and Auto-linking ticket show the auto-link flow.onTicketView() called shows that the panel is rendered.Deploying file and File deployed show the copy to scp/.The log contains ticket data. Disable debug mode after the analysis.
Does the plugin close parent tickets automatically?
No. The plugin does not change any ticket status. The configuration fields for it (for example "Auto-close Parent Ticket") have no function.
Is there a tree view or batch functions?
No. The overview page lists existing relationships, at most 100 child tickets.
Can a ticket have multiple parents?
No. osTicket stores exactly one ticket_pid per ticket.
How many levels are allowed?
The plugin does not limit the depth. The loop check follows the chain at most ten levels deep.
What remains after uninstalling?
The links in ticket_pid always remain. Tables, the version column and indexes are removed only with the option Remove Data on Uninstall enabled, and the two commands for column and index work on MariaDB only.
Does the plugin work with a table prefix other than ost_?
No. All queries use ost_ hard-coded.
Can I manage subtickets through the REST API?
Yes, through the API Endpoints plugin. Details under Extending and Integration.