С версией 56 не проканало - но у меня весь проект на 55 версии. Не знаю как версионность работает, но возможно толку менять версию на одном классе нет если он вызывается из других с меньшими версиями. Это догадки, но весь проект апдейтить на новую версию времени и желания нет.
А вот переставил местами части тернарной операции и ошибка пропала.
String k = ppa.Timesheet_Line__c == null ? ppa.Timesheet_Line_Name__c : ppa.Timesheet_Line__c;
Возможно проблема в самой тернарной операции и ее внутренней работе - типа части приводятся к типу первой части. Изначально у меня было
<String> = <Boolean> ?
<Id> : <String> что валится если <Boolean> = false
Теперь стало <String> = <Boolean> ?
<String> : <Id> и ошибки нет.
НО ХЗ почему у тебя Eric работает. Твои примеры выглядят также.
Это не проблема, просто интересно понять что за
Мистика.