[ci-scan] Build break: Mono minifullaot AOT compile of JIT.Generics fails with Recursive type definition detected
- 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=1564198
Build error leg or test failing: linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests minifullaot-AOT compile CoreCLR tests (JIT/Generics/JIT.Generics/JIT.Generics.dll)
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 `runtime-extra-platforms` pipeline (def 154) fails in the `linux-x64 Release AllSubsets_Mono_MiniFullAot_RuntimeTests minifullaot` leg during the `AOT compile CoreCLR tests` step. The Mono AOT compiler cannot compile `JIT/Generics/JIT.Generics/JIT.Generics.dll`, emitting a large batch of methodspec load failures rooted in a recursive generic type definition, then failing the AOT step:
```
EXEC : Failed to load methodspec 0x2b000070 due to Could not find method 'VerifyA0A1NotInlinedGenericStatic' due to a type load error : Recursive type definition detected JitTest_Generics_Coverage_chaos65204782cs.A0A1`1 assembly:.../JIT/Generics/JIT.Generics/JIT.Generics.dll type:A0A1`1 member:(null). [/__w/1/s/src/mono/msbuild/aot-compile.proj]
...
src/mono/msbuild/aot-compile.proj(19,9): error MSB3077: The command "... corerun ... JIT.Generics.dll" exited with return value 0, but errors were detected during execution. ExitCode was set to -1.
```
Reproduces in both the source build #1564198 (2026-08-24) and the later build #1566157 (2026-08-25). First build it occurred: persistent across the scanned window; true origin may predate 2026-08-08.
Related area tracker: dotnet/runtime#118472 (Mono cannot handle certain legal self-recursive type loads involving static fields).
## Error Message
```json
{
"ErrorMessage": "Could not find method 'VerifyA0A1NotInlinedGenericStatic' due to a type load error : Recursive type definition detected JitTest_Generics_Coverage_chaos65204782cs.A0A1",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}
```
Agentic workflow metadata (ci-failure-scan)
Workflow artifact: ci-failure-scan
Artifact kind: kbe-verification
Verified match count: 64 hits in failure.log
Tracking: dotnet/runtime#118472
---
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.
> Generated by [CI Outer-Loop Failure Scanner](https://github.com/dotnet/runtime/actions/runs/32916541997) · opus48 · 619 AIC · ⌖ 11 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)||
|[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)||
#### Summary
|24-Hour Hit Count|7-Day Hit Count|1-Month Count|
|---|---|---|
|0|0|39|
Contributor guide
Research direction
Start with the failing AOT compile CoreCLR tests leg and the error in src/mono/msbuild/aot-compile.proj, then inspect JIT/Generics/JIT.Generics/JIT.Generics.dll and tracking issue dotnet/runtime#118472. Reproduce the linux-x64 Release minifullaot run and investigate the recursive generic type-load failure; done means the AOT compile completes without this error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- ci-cd, compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100