The current interface calls for size(payload) to return a number. There may be occasions, depending on the state of health and the provider of the interface, where size is either temporarily unavailable or can't be determined at all. In the current interface, consuming a payload returns an error. For the same reason, I think attempting to obtain the size of the payload should also potentially return an error.