Skip to content

ExtractMetadataException - Error extracting metadata for *** While writing a quoted scalar, found an orphaned high surrogate #1817

@Shazwazza

Description

@Shazwazza

Title

DocFx 2.17 didn't have this issue however 2.19.2 does. When I run the docfx.exe build I get this error with our current build setup.

I'm not sure if it's something in particular with some formatting within code comments, maybe some odd characters or just something I've done that isn't supported after 2.17.x versions. Any help is appreciated!

Functional impact

The docs cannot build

Minimal repro steps

Clone this repo at this branch: https://github.com/Shazwazza/lucenenet/tree/docfx-apidocs

This is trying to build API docs for the upcoming Lucene.NET 4.8 but fails. Currently the build file is using v2.17.7 but if it's changed to v2.19.2 it fill fail.

You can test this by running the build script with powershell: /apidocs/docs.ps1

If you then change this docs.ps1 file to reference the v2.19.2 instead (on line 42), then delete the /apidocs/tools folder and re-run the script it will fail with the exception below

Expected result

The build is successful

Actual result

The build throws an exception

Further technical details

This is the exception that is thrown:

[17-06-30 02:27:19.762]Error:System.AggregateException: One or more errors occurred. ---> Microsoft.DocAsCode.Exceptions.ExtractMetadataException: Err
or extracting metadata for X:/Projects/Lucene.Net/lucenenet.4.x/src/Lucene.Net/Lucene.Net.csproj: While writing a quoted scalar, found an orphaned hig
h surrogate. ---> YamlDotNet.Core.SyntaxErrorException: While writing a quoted scalar, found an orphaned high surrogate.
   at YamlDotNet.Core.Emitter.WriteDoubleQuotedScalar(String value, Boolean allowBreaks)
   at YamlDotNet.Core.Emitter.EmitScalar(ParsingEvent evt)
   at YamlDotNet.Core.Emitter.EmitNode(ParsingEvent evt, Boolean isRoot, Boolean isMapping, Boolean isSimpleKey)
   at YamlDotNet.Core.Emitter.EmitBlockMappingValue(ParsingEvent evt, Boolean isSimple)
   at YamlDotNet.Core.Emitter.Emit(ParsingEvent event)
   at YamlDotNet.Serialization.EventEmitters.TypeAssigningEventEmitter.Emit(ScalarEventInfo eventInfo, IEmitter emitter)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseDictionary[TContext](IObjectDescri
ptor dictionary, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.YamlSerializer.EmitDocument(IEmitter emitter, IObjectDescriptor graph)
   at Microsoft.DocAsCode.Common.YamlUtility.Serialize(TextWriter writer, Object graph, String comments)
   at Microsoft.DocAsCode.Common.YamlUtility.Serialize(String path, Object graph, String comments)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<GetMetadataFromProjectLevelCacheAsync>d__27`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<SaveAllMembersFromCacheAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<ExtractMetadataAsync>d__12.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<ExtractMetadataAsync>d__12.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Microsoft.DocAsCode.SubCommands.MetadataCommand.ExecCore()
   at Microsoft.DocAsCode.SubCommands.MetadataCommand.Exec(SubCommandRunningContext context)
   at Microsoft.DocAsCode.Program.ExecSubCommand(String[] args)
---> (Inner Exception #0) Microsoft.DocAsCode.Exceptions.ExtractMetadataException: Error extracting metadata for X:/Projects/Lucene.Net/lucenenet.4.x/
src/Lucene.Net/Lucene.Net.csproj: While writing a quoted scalar, found an orphaned high surrogate. ---> YamlDotNet.Core.SyntaxErrorException: While wr
iting a quoted scalar, found an orphaned high surrogate.
   at YamlDotNet.Core.Emitter.WriteDoubleQuotedScalar(String value, Boolean allowBreaks)
   at YamlDotNet.Core.Emitter.EmitScalar(ParsingEvent evt)
   at YamlDotNet.Core.Emitter.EmitNode(ParsingEvent evt, Boolean isRoot, Boolean isMapping, Boolean isSimpleKey)
   at YamlDotNet.Core.Emitter.EmitBlockMappingValue(ParsingEvent evt, Boolean isSimple)
   at YamlDotNet.Core.Emitter.Emit(ParsingEvent event)
   at YamlDotNet.Serialization.EventEmitters.TypeAssigningEventEmitter.Emit(ScalarEventInfo eventInfo, IEmitter emitter)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseDictionary[TContext](IObjectDescri
ptor dictionary, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext](IObjectDescriptor v
alue, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext](IObjectDescri
ptor value, Object visitor, Int32 currentDepth, Object context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext](IObjectDescriptor
 value, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext](IObjectDescriptor value
, IObjectGraphVisitor`1 visitor, Int32 currentDepth, TContext context)
   at Microsoft.DocAsCode.YamlSerialization.YamlSerializer.EmitDocument(IEmitter emitter, IObjectDescriptor graph)
   at Microsoft.DocAsCode.Common.YamlUtility.Serialize(TextWriter writer, Object graph, String comments)
   at Microsoft.DocAsCode.Common.YamlUtility.Serialize(String path, Object graph, String comments)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<GetMetadataFromProjectLevelCacheAsync>d__27`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<SaveAllMembersFromCacheAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<ExtractMetadataAsync>d__12.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.<ExtractMetadataAsync>d__12.MoveNext()<---



Build failed.

Metadata

Metadata

Assignees

Labels

dotnetGenerate .NET API reference docs

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions