dotnet/runtime · critical
END: coreclr_execute_assembly failed - Error: 0x%08x
Error message
END: coreclr_execute_assembly failed - Error: 0x%08x
What it means
Closing marker (matching BEGIN at 639) that ends the diagnostic block printed after coreclr_execute_assembly() fails. Repeats the HRESULT so log tooling can bracket the dump_details() output between BEGIN and END.
Source
Thrown at src/coreclr/hosts/corerun/corerun.cpp:641
coreclr_set_error_writer_func(nullptr);
}
int exit_code;
{
actions.before_execute_assembly(config.entry_assembly_fullpath);
result = coreclr_execute_func(
CurrentClrInstance,
CurrentAppDomainId,
config.entry_assembly_argc,
argv_utf8.get(),
entry_assembly_utf8.c_str(),
(uint32_t*)&exit_code);
if (FAILED(result))
{
pal::fprintf(stderr, W("BEGIN: coreclr_execute_assembly failed - Error: 0x%08x\n"), result);
logger.dump_details();
pal::fprintf(stderr, W("END: coreclr_execute_assembly failed - Error: 0x%08x\n"), result);
return -1;
}
actions.after_execute_assembly();
}
#ifdef TARGET_BROWSER
// in NodeJS/Browser this is not really end of the process, JS keeps running.
// We want to keep the CoreCLR runtime alive to be able to process async work
// The NodeJS process is kept alive by pending async work via safeSetTimeout() -> runtimeKeepalivePush()
// The actual exit code would be set by SystemJS_ResolveMainPromise if the managed Main() is async.
// Or in Module.onExit handler when managed Main() is synchronous.
return exit_code;
#else // TARGET_BROWSER
int final_exit_code = corerun_shutdown(exit_code);
#ifdef TARGET_WASI
// wasi:cli/exit's stable exit() only signals ok/err, so wasmtime
// collapses any non-zero Main return to host exit 1. WhenView on GitHub (pinned to 290d5ab72c)
Solutions
- Pair with BEGIN (203); extract all lines between them as failure context.
- Apply the HRESULT-driven diagnosis from error 203.
- Feed the captured block to the same parser used for 201/202.
Defensive patterns
Strategy: validation
Validate before calling
# same bracketing extractor as 201/202 grep -A60 'BEGIN: coreclr_execute_assembly failed' run.log | sed '/END: coreclr_execute_assembly failed/q'
Prevention
- Treat BEGIN (203) and END (204) as a pair when parsing logs.
- Capture the full property dump between them.
- Feed the block to the same tooling used for initialization failures.
When it happens
Trigger: Always emitted immediately after logger.dump_details() following a FAILED coreclr_execute_func() result at line 637-638. Never appears without the preceding BEGIN line.
Common situations: Same as error 203; exists for log bracketing of the property/argument dump between BEGIN and END.
Related errors
- END: coreclr_initialize failed - Error: 0x%08x
- BEGIN: coreclr_initialize failed - Error: 0x%08x
- BEGIN: coreclr_execute_assembly failed - Error: 0x%08x
- coreclr_shutdown_2 failed - Error: 0x%08x
- Export '%s' not found.
AI-assisted analysis of dotnet/runtime@290d5ab72c (2026-08-06).
Data as JSON: /api/errors/d973d62c470b54f0.
Report an issue: GitHub.