[ci-scan] Build break: Mono FullAOT recursive type definition in JIT.Generics_ro (chaos65204782cs)
- Dominant language
- C#
- Stars
- 18.3k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Description
## Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1560207
Build error leg or test failing: linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests minifullaot - AOT compile CoreCLR tests (JIT.Generics_ro)
KBE authoring guidance (ci-failure-scan)
- `Error Details` is for readers. Paste the full exception, stack trace, or build error excerpt so the failure is understandable without opening the raw log.
- Build Analysis parses only the single JSON block under `Error Message`.
- `ErrorMessage` is a case-sensitive ordinal `String.Contains` substring copied verbatim from the failing log.
- Set `BuildRetry` to `true` only for a clear infrastructure retry case. `ExcludeConsoleLog` disables Helix console-log scanning.
## Error Details
The Mono FullAOT compile step (`aot-compile.proj`) fails while AOT-compiling `JIT.Generics_ro.dll`. The Mono AOT compiler emits over a thousand `Failed to load methodspec` errors rooted in a recursive generic type definition, then the MSBuild `Exec` fails:
```
EXEC : Failed to load methodspec 0x2b0003fa due to Could not find method 'VerifyA0A1A2A3NotInlinedGenericStatic' due to a type load error : Could not set up parent class, due to: Generic Type Definition failed to init, due to: Could not set up parent class, due to: Generic Type Definition failed to init, due to: Recursive type definition detected JitTest_Generics_Coverage_chaos65204782cs.A0A1`1 ... type:A0A1A2A3`2 member:(null). [/src/mono/msbuild/aot-compile.proj]
/src/mono/msbuild/aot-compile.proj(19,9): error MSB3077: The command "corerun .../JIT/Generics/JIT.Generics_ro/JIT.Generics_ro.dll" exited with return value 0, but errors were detected during execution. ExitCode was set to -1.
1154 Error(s)
Build failed with exit code 1. Check errors above.
```
First observed in build 1560207 (2026-08-20, linux-x64 minifullaot); still failing in follow-up build 1561700 (2026-08-21). First build it occurred: 1558665 (2026-08-19); build 1556608 (2026-08-18) did not contain this signature.
## Error Message
```json
{
"ErrorMessage": "Recursive type definition detected JitTest_Generics_Coverage_chaos65204782cs.A0A1`1",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}
```
Agentic workflow metadata (ci-failure-scan)
Workflow artifact: ci-failure-scan
Artifact kind: kbe-verification
Verified match count: 768 hits in failure.log
---
Filed by [`ci-failure-scan`](https://github.com/dotnet/runtime/blob/main/.github/workflows/ci-failure-scan.md) (detection only). [`ci-failure-fix`](https://github.com/dotnet/runtime/blob/main/.github/workflows/ci-failure-fix.md) walks open `[ci-scan]` KBEs and either opens a small fix PR or comments here to loop in owners — it never disables the test.
> [!NOTE]
> This issue was generated by an AI agent (`ci-failure-scan` GitHub Copilot workflow).
> Generated by [CI Outer-Loop Failure Scanner](https://github.com/dotnet/runtime/actions/runs/32541498173) · opus48 · 596.1 AIC · ⌖ 17.9 AIC · ⊞ 20.7K · [◷](https://github.com/search?q=repo%3Adotnet%2Fruntime+is%3Aissue+%22gh-aw-workflow-call-id%3A+dotnet%2Fruntime%2Fci-failure-scan%22&type=issues)
### Report
|Build|Repository|Step Name|Console log|Pull Request|
|---|---|---|---|---|
|[1582624](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582624)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582624/logs/89)||
|[1582425](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582425)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582425/logs/110)|dotnet/runtime#132744|
|[1582322](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1582322)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1582322/logs/486)||
|[1581950](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581950)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1581950/logs/110)|dotnet/runtime#130050|
|[1581745](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1581745)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1581745/logs/89)||
|[1580442](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1580442)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1580442/logs/89)||
|[1580178](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1580178)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1580178/logs/380)||
|[1579525](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1579525)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1579525/logs/89)||
|[1579435](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1579435)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1579435/logs/110)|dotnet/runtime#130050|
|[1578220](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578220)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578220/logs/89)||
|[1578169](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578169)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578169/logs/110)|dotnet/runtime#133011|
|[1578114](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578114)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578114/logs/110)|dotnet/runtime#130050|
|[1578024](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1578024)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1578024/logs/469)||
|[1577512](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1577512)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1577512/logs/89)||
|[1576725](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1576725)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1576725/logs/110)|dotnet/runtime#133011|
|[1576204](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1576204)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1576204/logs/89)||
|[1575978](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1575978)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1575978/logs/575)||
|[1575514](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1575514)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1575514/logs/89)||
|[1574641](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574641)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1574641/logs/89)||
|[1574376](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574376)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1574376/logs/538)||
|[1574239](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574239)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1574239/logs/89)||
|[1574096](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574096)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1574096/logs/89)||
|[1574051](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1574051)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1574051/logs/583)||
|[1573862](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1573862)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1573862/logs/89)||
|[1573602](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1573602)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1573602/logs/95)||
|[1573540](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1573540)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1573540/logs/613)||
|[1573426](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1573426)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1573426/logs/110)|dotnet/runtime#130050|
|[1573117](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1573117)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1573117/logs/89)||
|[1572439](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1572439)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1572439/logs/450)|dotnet/runtime#132887|
|[1572010](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1572010)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1572010/logs/89)||
|[1571812](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1571812)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1571812/logs/574)||
|[1571246](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1571246)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1571246/logs/89)||
|[1569903](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1569903)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1569903/logs/89)||
|[1569716](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1569716)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1569716/logs/562)||
|[1569119](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1569119)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1569119/logs/89)||
|[1567956](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1567956)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1567956/logs/89)||
|[1567845](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1567845)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1567845/logs/550)||
|[1567484](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1567484)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1567484/logs/89)||
|[1566865](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1566865)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1566865/logs/110)|dotnet/runtime#132744|
|[1566331](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1566331)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1566331/logs/89)||
|[1566157](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1566157)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1566157/logs/556)||
|[1565612](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1565612)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1565612/logs/89)||
|[1564499](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1564499)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1564499/logs/89)||
|[1564198](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1564198)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1564198/logs/548)||
|[1564078](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1564078)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1564078/logs/89)||
|[1563879](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563879)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563879/logs/89)||
|[1563837](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563837)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563837/logs/576)||
|[1563727](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563727)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563727/logs/89)||
|[1563501](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563501)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563501/logs/89)||
|[1563399](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563399)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563399/logs/576)||
|[1563009](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1563009)|dotnet/runtime|AOT compile CoreCLR tests|[Log](https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_apis/build/builds/1563009/logs/89)||
#### Summary
|24-Hour Hit Count|7-Day Hit Count|1-Month Count|
|---|---|---|
|0|0|51|
Contributor guide
Research direction
Start with the failing AOT compile entry point in src/mono/msbuild/aot-compile.proj and the JIT.Generics_ro test assembly named in the build failure. Reproduce the linux-x64 Mono FullAOT test leg and inspect the recursive generic type errors. Done means the AOT compile step completes without the recursive type definition or methodspec failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, linux
- Domain
- build-system, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100