docfx
docfx copied to clipboard
DocFX crashes in GetSpecId() with System.ArgumentOutOfRangeException: Index was out of range.
Operating System: (Windows
or Linux
or MacOS
)
Windows, running in GameCI Unity environment on GitHub Actions worker. DocFX does not crash, on the same project, when building the site on my dev PC.
DocFX Version Used:
DocFX 2.57.2 DocFX 2.59.2
Template used: (default
or statictoc
or contain custom template)
{
"metadata": [
{
"src": [
{
"files": [
"DocFxDummySource/aaaa-docfx-dummy-source.cs",
"Assets/Scripts/**/*.cs",
"Core.*.csproj"
],
"cwd": ".."
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false,
"filter": "filter-config.yml"
}
],
"build": {
"xref": [
"https://normanderwan.github.io/UnityXrefMaps/xrefmap.yml"
],
"xrefService": [
"https://xref.docs.microsoft.com/query?uid={uid}"
],
"globalMetadata": {
"_appTitle": "Our Company",
"_appFooter": "Copyright © 2012 - 2021 Our Company AS",
"_enableSearch": "true",
"_gitContribute": {
"apiSpecFolder": "Documentation~/apidoc"
}
},
"postProcessors": [
"ExtractSearchIndex"
],
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**/**.md",
"articles/toc.yml",
"toc.yml",
"*.md"
]
}
],
"resource": [
{
"files": [
"articles/images/**",
"images/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md",
],
"exclude": [
"obj/**",
"_site/**"
]
},
{
"files": [
"Library/PackageCache/com.attensi.*/Documentation~/apidoc/*.md"
],
"cwd": ".."
}
],
"dest": "_site",
"globalMetadataFiles": [],
"fileMetadataFiles": [],
"template": [
"default",
"templates/attensi"
],
"markdownEngineName": "markdig",
"noLangKeyword": false,
"keepFileLink": false,
"cleanupCacheHistory": false,
"disableGitFeatures": false
}
}
Steps to Reproduce:
Reproducing is going to require a copy of all our source files, which I cannot provide. I don't have a simple test case.
Expected Behavior:
Documentation is built.
Actual Behavior:
DocFX crashes.
[22-04-26 11:12:48.851]Error:Error extracting metadata for [...my .csproj files...] System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.Generic.List1[T].get_Item (System.Int32 index) [0x00009] in <533173d24dae460899d2b10975534bb0>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper+<>c__DisplayClass4_0.<SpecTypeGenericParameter>b__0 (System.Text.RegularExpressions.Match match) [0x0001c] in <592d1f25abee4dafaa2d141f06705e0b>:0 at System.Text.RegularExpressions.Regex.Replace (System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.Regex regex, System.String input, System.Int32 count, System.Int32 startat) [0x00094] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at System.Text.RegularExpressions.Regex.Replace (System.String input, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Int32 count, System.Int32 startat) [0x0000e] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at System.Text.RegularExpressions.Regex.Replace (System.String input, System.Text.RegularExpressions.MatchEvaluator evaluator) [0x00023] in <9c6e2cb7ddd8473fa420642ddcf7ce48>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper.SpecTypeGenericParameter (System.Collections.Generic.IReadOnlyList1[T] names, System.String id) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SpecIdHelper.GetSpecId (Microsoft.CodeAnalysis.ISymbol symbol, System.Collections.Generic.IReadOnlyList1[T] typeGenericParameters, System.Collections.Generic.IReadOnlyList1[T] methodGenericParameters) [0x00035] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.AddInheritedMembers (Microsoft.CodeAnalysis.INamedTypeSymbol symbol, Microsoft.CodeAnalysis.INamedTypeSymbol type, System.Collections.Generic.Dictionary2[TKey,TValue] dict, System.Collections.Generic.IReadOnlyList1[T] typeParamterNames) [0x000a1] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.GenerateInheritance (Microsoft.CodeAnalysis.INamedTypeSymbol symbol, Microsoft.DocAsCode.Metadata.ManagedReference.MetadataItem item) [0x00087] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamedType (Microsoft.CodeAnalysis.INamedTypeSymbol symbol) [0x0000d] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NamedTypeSymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T] (System.Collections.Generic.IEnumerable1[T] children, System.Func2[T,TResult] getChildren, System.Func2[T,TResult] filter) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitNamespace (Microsoft.CodeAnalysis.INamespaceSymbol symbol) [0x00021] in <592d1f25abee4dafaa2d141f06705e0b>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NamespaceSymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitDescendants[T] (System.Collections.Generic.IEnumerable1[T] children, System.Func2[T,TResult] getChildren, System.Func2[T,TResult] filter) [0x00024] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.SymbolVisitorAdapter.VisitAssembly (Microsoft.CodeAnalysis.IAssemblySymbol symbol) [0x0009e] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.AssemblySymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0 at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.Symbol.Microsoft.CodeAnalysis.ISymbol.Accept[TResult] (Microsoft.CodeAnalysis.SymbolVisitor1[TResult] visitor) [0x00000] in <16676840a0c44317b3d24e39d7d53d5d>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynMetadataExtractor.Extract (Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataOptions options) [0x000aa] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynIntermediateMetadataExtractor.GenerateYamlMetadata (Microsoft.CodeAnalysis.Compilation compilation, Microsoft.CodeAnalysis.IAssemblySymbol assembly, Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataOptions options) [0x00018] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynIntermediateMetadataExtractor.Extract (Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters key) [0x00022] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.RoslynSourceFileBuildController.ExtractMetadata (Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters parameters) [0x00007] in <592d1f25abee4dafaa2d141f06705e0b>:0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.GetMetadataFromProjectLevelCache (Microsoft.DocAsCode.Metadata.ManagedReference.IBuildController controller, Microsoft.DocAsCode.Metadata.ManagedReference.IInputParameters key) [0x000d0] in :0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.SaveAllMembersFromCacheAsync () [0x00806] in :0
at Microsoft.DocAsCode.Metadata.ManagedReference.ExtractMetadataWorker.ExtractMetadataAsync () [0x000c0] in :0