Currently if you don't correctly update the description of the return value for an RPC call, you essentially just get an assertion failure with no useful information; this generates a description of the problems instead.
Backport of core#26887.
Contains a layout leftover from D16252.
Depends on D16252.