| 
					
				 | 
			
			
				@@ -32,6 +32,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Diagnostics; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using System.Runtime.InteropServices; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using Grpc.Core; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using Grpc.Core.Utils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using Grpc.Core.Profiling; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,6 +45,7 @@ namespace Grpc.Core.Internal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     internal class CallSafeHandle : SafeHandleZeroIsInvalid, INativeCall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public static readonly CallSafeHandle NullInstance = new CallSafeHandle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        static readonly Encoding EncodingUTF8 = System.Text.Encoding.UTF8; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         static readonly NativeMethods Native = NativeMethods.Get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const uint GRPC_WRITE_BUFFER_HINT = 1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -138,7 +140,8 @@ namespace Grpc.Core.Internal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var ctx = BatchContextSafeHandle.Create(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 var optionalPayloadLength = optionalPayload != null ? new UIntPtr((ulong)optionalPayload.Length) : UIntPtr.Zero; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 completionQueue.CompletionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Native.grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var statusDetailBytes = EncodingUTF8.GetBytes(status.Detail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Native.grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, statusDetailBytes, new UIntPtr((ulong)statusDetailBytes.Length), metadataArray, sendEmptyInitialMetadata, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     optionalPayload, optionalPayloadLength, writeFlags).CheckOk(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |