The original method signature is Block VExprContext::get_output_block_after_execute_exprs( const std::vectorvectorized::VExprContext*& output_vexpr_ctxs, const Block& input_block, Status& status) It return error status as a out parameter and the block as return value. It has to check the block.rows == 0 and then check error status. It is not conforming to the convention. --------- Co-authored-by: yiguolei <yiguolei@gmail.com>