I have the same issue as OP.
Running osticket in a docker instance
tiredofit/osticket:3.6.2, so
osTicket v1.17.6
mariadb:10.11
nginx version: nginx/1.25.1
PHP 8.2.8
Error pasted below
Dropping the ost_ticketcdata table and running cron a few times seemed to work. But it's consistent behaviour when adding a new form field. Doesn't matter if I set the new field to required or optional. Subject variable is there in the form and the ost_ticketcdata table.
I was considering rolling my own docker image to incorporate a newer osticket release (1.18.2?) if that would solve the problem. Any pointers/insights appreciated.
Thanks
Fatal error: Uncaught InconsistentModelException: Unable to prepare query:
SELECT
A1.`number` AS `number`, A1.`ticket_id` AS `ticket_id`, A1.`source` AS `source`,
A1.`lastupdate` AS `lastupdate`, B2.`subject` AS `cdata__subject`, A1.`isoverdue` AS `isoverdue`,
B4.`name` AS `user__name`, B2.`priority` AS `cdata__priority`,
B5.`firstname` AS `staff__firstname`, B5.`lastname` AS `staff__lastname`,
B6.`name` AS `team__name`, A1.`team_id` AS `team_id`, A1.`isanswered` = '0' AS `2GkBZxz`,
(SELECT
COUNT(R0.`id`) AS `count` FROM `ost_thread` Q7
JOIN `ost_ticket` Q8 ON (Q7.`object_type` = 'T' AND Q7.`object_id` = Q8.`ticket_id`)
LEFT JOIN `ost_thread_entry` R0 ON (Q7.`id` = R0.`thread_id`)
WHERE Q8.`ticket_id` = A1.`ticket_id` AND NOT R0.`flags` & 4 != 0
) AS _thread_count,
(SELECT
COUNT(R1.`id`) AS `count`
FROM `ost_thread` Q7
JOIN `ost_ticket` Q8 ON (Q7.`object_type` = 'T' AND Q7.`object_id` = Q8.`ticket_id`)
LEFT JOIN `ost_thread_entry` R0 ON (Q7.`id` = R0.`thread_id`)
LEFT JOIN `ost_attachment` R1 ON (R1.`type` = 'H' AND R0.`id` = R1.`object_id`)
WHERE Q8.`ticket_id` = A1.`ticket_id` AND R1.`inline` = 0
) AS _att_count,
B7.`expire` > NOW() AND NOT B7.`staff_id` = 1 AS `_locked`,
(SELECT
COUNT(R0.`id`) AS `count`
FROM `ost_thread` Q7
JOIN `ost_ticket` Q8 ON (Q7.`object_type` = 'T' AND Q7.`object_id` = Q8.`ticket_id`)
LEFT JOIN `ost_thread_collaborator` R0 ON (Q7.`id` = R0.`thread_id`)
WHERE Q8.`ticket_id` = A1.`ticket_id`
) AS _collabs,
COALESCE(B5.`firstname`, B5.`lastname`, B6.`name`, 'zzz') AS `assignee`
FROM `ost_ticket` A1
JOIN `ost_ticket_status` A2 ON (A1.`status_id` = A2.`id`)
LEFT JOIN `ost_thread` A3 ON (A3.`object_type` = 'T' AND A1.`ticket_id` = A3.`object_id`)
LEFT JOIN `ost_thread_referral` A4 ON (A3.`id` = A4.`thread_id`)
LEFT JOIN `ost_staff` A5 ON (A4.`object_type` = 'S' AND A4.`object_id` = A5.`staff_id`)
LEFT JOIN `ost_thread` A6 ON (A1.`ticket_id` = A6.`object_id` AND A6.`object_type` = 'C')
LEFT JOIN `ost_thread_referral` A7 ON (A6.`id` = A7.`thread_id`)
LEFT JOIN `ost_staff` A8 ON (A7.`object_type` = 'S' AND A7.`object_id` = A8.`staff_id`)
LEFT JOIN `ost_department` B0 ON (A4.`object_type` = 'D' AND A4.`object_id` = B0.`id`)
LEFT JOIN `ost_department` B1 ON (A7.`object_type` = 'D' AND A7.`object_id` = B1.`id`)
LEFT JOIN `ost_ticket__cdata` B2 ON (A1.`ticket_id` = B2.`ticket_id`)
LEFT JOIN `ost_ticket_priority` B3 ON (B2.`priority` = B3.`priority_id`)
LEFT JOIN `ost_user` B4 ON (A1.`user_id` = B4.`id`)
LEFT JOIN `ost_staff` B5 ON (A1.`staff_id` = B5.`staff_id`)
LEFT JOIN `ost_team` B6 ON (A1.`team_id` = B6.`team_id`)
LEFT JOIN `ost_lock` B7 ON (A1.`lock_id` = B7.`lock_id`)
WHERE
A2.`state` = 'open'
AND (
(A2.`state` = 'open' AND (
A1.`staff_id` = 1 OR A5.`staff_id` = 1 OR A6.`object_type` = 'C' AND A8.`staff_id` = 1
))
OR A1.`dept_id` IN (1, 2)
OR B0.`id` IN (1, 2)
OR A6.`object_type` = 'C'
AND B1.`id` IN (1, 2)
)
AND (A1.`ticket_pid` IS NULL OR A1.`flags` & 8 != 0)
GROUP BY A1.`ticket_id`
ORDER BY B3.`priority_urgency` ASC, A1.`lastupdate` DESC
LIMIT 25
in /www/osticket/include/class.orm.php:3483
Stack trace: #0 /www/osticket/include/class.orm.php(3529): MySqlExecutor->execute()
#1 /www/osticket/include/class.orm.php(2104): MySqlExecutor->getArray()
#2 /www/osticket/include/class.orm.php(2054): HashArrayIterator->{closure}()
#3 /www/osticket/include/class.orm.php(2033): CallbackSimpleIterator->next()
#4 /www/osticket/include/class.orm.php(2042): CallbackSimpleIterator->rewind()
#5 /www/osticket/include/class.orm.php(1713): CallbackSimpleIterator->valid()
#6 /www/osticket/include/class.orm.php(1723): CachedResultSet->fillTo(9223372036854775807)
#7 /www/osticket/include/class.orm.php(1739): CachedResultSet->asArray()
#8 /www/osticket/include/staff/templates/queue-tickets.tmpl.php(258): CachedResultSet->getIterator()
#9 /www/osticket/scp/tickets.php(569): require_once('/www/osticket/i...')
#10 /www/osticket/scp/index.php(17): require('/www/osticket/s...')
#11 {main} thrown in /www/osticket/include/class.orm.php on line 3483