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