Parses a task's stored InputPayload, telling an ABSENT input apart from an UNREADABLE one.
Both used to come out as null, and null is a legitimate "this node takes no input" — so a row
whose payload could not be parsed ran with none of its inputs, the same silent outcome the shape
guard in runTaskBody refuses for an array. A string that is not JSON reaches here through
TaskGraph.RetryTask / UpdateTaskInput, which store a string payload verbatim.
Parses a task's stored
InputPayload, telling an ABSENT input apart from an UNREADABLE one.Both used to come out as
null, andnullis a legitimate "this node takes no input" — so a row whose payload could not be parsed ran with none of its inputs, the same silent outcome the shape guard inrunTaskBodyrefuses for an array. A string that is not JSON reaches here throughTaskGraph.RetryTask/UpdateTaskInput, which store a string payload verbatim.