Different problems when extracting from msg files

Hi there,

We observed multiple exceptions regarding msg files. I think, if the files are not actual msg files, it would make sense to throwing an exception telling that the documents are corrupted.


GroupDocs.Metadata.Exceptions.GroupDocsMetadataException: Image loading failed.

at GroupDocs.Metadata.Formats.Image.ImageRootPackage.xlvkm45y4n3jd8yancakp2dhnzf6x6gj\u0019\u0003\u0002()

at GroupDocs.Metadata.Formats.Image.ImageRootPackage.pfq4rhh3tnxzrhuh6z5nyqfxm3nvff3j\u0019\u0003\u0002()

at \u0005\u0010\u001B2.\u0005\u0010\u001B2\u0019\u0003\u0005\u0002(\u0002 \u0002)

at \u0008\u0002\u0010.\u000E\u001A\u000F\u0016\u0005\u0002()

at \u0003\u0016\u000F.\u0002(Int32 \u0002, \u0008\u001A\u000F \u0003)


System.NullReferenceException: Object reference not set to an instance of an object.

   at nO.T3(MapiMessage d)\r\n   at Aspose.Email.Mapi.MapiMessage.Y(Stream d, LoadOptions v)\r\n   at Aspose.Email.Mapi.MapiMessage.Load(Stream stream, LoadOptions options)\r\n   at \u000F\u0005\u0005.\u0002(Stream \u0002, LoadOptions \u0003)\r\n   at \u0003\u000F\u0005.\u0002()\r\n   at \u0003\u000F\u0005.\u0008\u0017\u0003\u0017\u0005\u0017\u0015\u0002()\r\n   at GroupDocs.Parser.Parser.GetMetadata()\r\n   at \u0003\u0016\u000F.\u0002(Document \u0002, \u0006\u001A\u000F \u0003, String \u0005)

System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1. (if it’s not a valid msg file, an exception that it is corruped is probably better)


at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)

at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()

at System.Xml.XmlTextReaderImpl.ParseDocumentContent()

at \u0006\u0016\u001A\u0016.\u0002\u0016\u001A\u0016\u0003\u0016\u0008()

at \u0002\u0016\u001A\u0016.\u0002()

at \u0008\u001A\u0002.\u0002\u0010\u0003\u0003\u0016\u0002()

at \u0005\u0010\u0003.\u0002\u000F\u0003\u0003\u0016\u0002()

at GroupDocs.Metadata.Formats.Image.GifRootPackage.\u0002()

at GroupDocs.Metadata.Common.RootMetadataPackage.\u0002.\u0002()

at \u0008\u001A\u0018`2.\u0005.\u0002.MoveNext()

at \u0006\u0005\u0002.\u000E\u0018\u001B\u0003\u0016\u0008()

at \u0008\u001B\u001B.\u0002(Int32 \u0002, \u0006\u0018\u001B \u0008)


System.InvalidOperationException: The data of the attachment is empty


at Aspose.Email.Mapi.MapiAttachment.O(Stream d)

at \u0008\u000F\u0005.\u0002\u0018\u0003\u0017\u0005\u0017\u0015\u0002(ContainerItem \u0002)

at GroupDocs.Parser.Data.ContainerItem.OpenParser(LoadOptions loadOptions, ParserSettings parserSettings)

at \u000E\u0002\u0010.\u0008\u001A\u000F\u0016\u0005\u0002(\u0002\u0002\u000F \u0002, \u000F\u0018\u0010 \u0003, String \u0005)

at \u0003\u0016\u000F.\u0002(Int32 \u0002, \u0008\u001A\u000F \u0003)

at \u0003\u0016\u000F.\u0002(Document \u0002, \u0006\u001A\u000F \u0003, String \u0005)


System.IO.EndOfStreamException: Invalid bytes count


at \u0005\u001B\u0010.\u0002(String \u0002)

at \u000F\u001B\u0010.\u0002()

at GroupDocs.Metadata.Formats.Image.PngRootPackage.\u0002()

at \u0005\u0010\u001B`2.\u0002.MoveNext()

at \u0005\u0010\u001B`2.\u0005.\u0002.MoveNext()

at \u0008\u0002\u0010.\u000E\u001A\u000F\u0016\u0005\u0003()

at \u0003\u0016\u000F.\u0002(Int32 \u0002, \u0008\u001A\u000F \u0003)


GroupDocs.Metadata.Exceptions.XmpException: Invalid requested xml: <?xpacket begin=\"\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>

at \u0002\u0016\u001A\u0016…ctor(String \u0002)

at \u0006\u0016\u001A\u0016…ctor(String \u0002)

at \u000E\u000F\u000F.\u0002()

at GroupDocs.Metadata.Formats.Image.PngRootPackage.\u0002()

at GroupDocs.Metadata.Common.RootMetadataPackage.\u0002.\u0002()

at \u0008\u001A\u0018`2.\u0005.\u0002.MoveNext()

at \u0006\u0005\u0002.\u000E\u0018\u001B\u0003\u0016\u0008()

at \u0008\u001B\u001B.\u0002(Int32 \u0002, \u0006\u0018\u001B \u0008)


System.InvalidOperationException: Mail message is not signed


at Aspose.Email.MailMessage.RemoveSignature()

at Aspose.Email.Mapi.MapiMessage.Y(Stream d, LoadOptions v)

at \u000F\u0005\u0005.\u0002(Stream \u0002, LoadOptions \u0003)

at \u0003\u000F\u0005.\u0008\u0017\u0003\u0017\u0005\u0017\u0015\u0002()

at GroupDocs.Parser.Parser.GetMetadata()

at \u0003\u0016\u000F.\u0002(Document \u0002, \u0006\u001A\u000F \u0003, String \u0005)


GroupDocs.Metadata.Exceptions.InvalidFormatException: Unknown block label


at \u000E\u0010\u0010.\u0002()

at \u0005\u0015\u0010.\u0008\u0017\u0005\u0019\u0003\u0002()

at \u000E\u0017\u0005.\u0006\u001B\u0003\u0019\u0003\u0002()

at GroupDocs.Metadata.Formats.Image.GifRootPackage.\u0002()

at GroupDocs.Metadata.Common.RootMetadataPackage.\u0002.\u0002()

at \u0005\u0010\u001B`2.\u0002.MoveNext()

at \u0005\u0010\u001B`2.\u0005.\u0002.MoveNext()

at \u0008\u0002\u0010.\u000E\u001A\u000F\u0016\u0005\u0003()

at \u0003\u0016\u000F.\u0002(Int32 \u0002, \u0008\u001A\u000F \u0003)

HI @jamsharp!

Thank you for the feedback.
Is my assumption correct that all those different exceptions happened on various format filesthat were passed to the GroupDocs.Metadata and they are not correct, with some broken msg/eml files format content?

If you will be able to share some of these files, that will help us to identify the exceptions and try to unify various exceptions into a common error related to corrupted content or unexpected file format.

Thank you!