|  | @@ -772,19 +772,23 @@ class CallOpClientRecvStatus {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    void FinishOp(bool* /*status*/) {
 | 
	
		
			
				|  |  |      if (recv_status_ == nullptr || hijacked_) return;
 | 
	
		
			
				|  |  | -    grpc::string binary_error_details = metadata_map_->GetBinaryErrorDetails();
 | 
	
		
			
				|  |  | -    *recv_status_ =
 | 
	
		
			
				|  |  | -        Status(static_cast<StatusCode>(status_code_),
 | 
	
		
			
				|  |  | -               GRPC_SLICE_IS_EMPTY(error_message_)
 | 
	
		
			
				|  |  | -                   ? grpc::string()
 | 
	
		
			
				|  |  | -                   : grpc::string(GRPC_SLICE_START_PTR(error_message_),
 | 
	
		
			
				|  |  | -                                  GRPC_SLICE_END_PTR(error_message_)),
 | 
	
		
			
				|  |  | -               binary_error_details);
 | 
	
		
			
				|  |  | -    client_context_->set_debug_error_string(
 | 
	
		
			
				|  |  | -        debug_error_string_ != nullptr ? debug_error_string_ : "");
 | 
	
		
			
				|  |  | -    g_core_codegen_interface->grpc_slice_unref(error_message_);
 | 
	
		
			
				|  |  | -    if (debug_error_string_ != nullptr) {
 | 
	
		
			
				|  |  | -      g_core_codegen_interface->gpr_free((void*)debug_error_string_);
 | 
	
		
			
				|  |  | +    if (status_code_ == StatusCode::OK) {
 | 
	
		
			
				|  |  | +      *recv_status_ = Status();
 | 
	
		
			
				|  |  | +      GPR_CODEGEN_DEBUG_ASSERT(GRPC_SLICE_IS_EMPTY(error_message_));
 | 
	
		
			
				|  |  | +      GPR_CODEGEN_DEBUG_ASSERT(debug_error_string_ == nullptr);
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +      *recv_status_ =
 | 
	
		
			
				|  |  | +          Status(static_cast<StatusCode>(status_code_),
 | 
	
		
			
				|  |  | +                 GRPC_SLICE_IS_EMPTY(error_message_)
 | 
	
		
			
				|  |  | +                     ? grpc::string()
 | 
	
		
			
				|  |  | +                     : grpc::string(GRPC_SLICE_START_PTR(error_message_),
 | 
	
		
			
				|  |  | +                                    GRPC_SLICE_END_PTR(error_message_)),
 | 
	
		
			
				|  |  | +                 metadata_map_->GetBinaryErrorDetails());
 | 
	
		
			
				|  |  | +      g_core_codegen_interface->grpc_slice_unref(error_message_);
 | 
	
		
			
				|  |  | +      if (debug_error_string_ != nullptr) {
 | 
	
		
			
				|  |  | +        client_context_->set_debug_error_string(debug_error_string_);
 | 
	
		
			
				|  |  | +        g_core_codegen_interface->gpr_free((void*)debug_error_string_);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 |