FaultException.Detail volviendo vacío

Estoy tratando de detectar una FaultException dada en un cliente WCF. Básicamente necesito extraer una descripción interna de la clase de falla para poder empaquetarla en otra excepción para que las capas superiores hagan lo que sea.

Lo he hecho con éxito varias veces, lo que lo hace diferente esta vez es que la falla se declara como una matriz, como puede ver en el atributo de referencia de servicio declarado en la parte superior del método que arroja la excepción:

[System.ServiceModel.FaultContractAttribute(typeof(FaultClass[]), Action = "http://whatever/", Name = "whateverBusinessFault")] 

Este es mi código:

try
{
  // call service here
}
catch (FaultException<FaultClass[]> ex)
{
  if (ex.Detail != null && ex.Detail.Length > 0)
  {
    throw new CustomException(ex.Detail[0].description);
  }
  else
  {
    throw;
  }
}

El problema esEl detalle (que es una matriz) siempre vuelve vacío en el código incluso si puedo ver los datos (campo de descripción, etc.) en la respuesta SOAP del rastreo WCF.

Entonces, lo que necesito definitivamente regresará, pero por alguna razón no se deserializa o no puedo acceder a él desde el código.

Cualquier ayuda apreciada!

ACTUALIZAR:

Intentando con la sugerencia @Darin pero sin suerte, la cadena que estoy extrayendo del XmlReader es "/ r / n":

var sb = new StringBuilder();

using (XmlReader reader = fault.GetReaderAtDetailContents())
{
  while (reader.Read())
     sb.AppendLine(reader.ReadOuterXml()); 
}

var detail = sb.ToString();

¡Parece que la sección de detalles no aparece en absoluto!

Respuestas a la pregunta(5)

Su respuesta a la pregunta