Revert "Revert "Revert "Revert "Signal error rather than return  null""""

This reverts commit 402b6535b629fb6ea5855bd76e54530969a75115.
Revert "Revert "Revert "Signal error rather than return  null"""

This reverts commit 29ff06c58d061d56f22fb45ecfae6d6a24bf943e.
Revert "Revert "Signal error rather than return  null""

This reverts commit c725358613ee3746e84cfddce0fb851994894203.