I think if we're going to go this route we should instead refactor this to have an error enum with appropriate variants? In either case this is possibly worse performance-wise since it increases the size of the return value for relatively little benefit