[UnigramDev/Unigram/exception-reporting](https://github.com/UnigramDev/Unigram/tree/exception-reporting) • [01940da](https://github.com/UnigramDev/Unigram/commit/01940daee087030b65781fbe03761eaee819065d) • _1 files, +36/-17_
Read the rest of the stowed exception record

GetStowedException2 required ExceptionForm 1 and returned null otherwise, so
three fields the record always carries went unused:

- ResultCode, the HRESULT the error was stowed with, before propagation
  flattened it to E_FAIL. This is the field that actually distinguishes one
  failure from another.
- ThreadId, the thread it originated on, which is not necessarily the one whose
  stack ends up in the report.
- ErrorText, which form 2 carries instead of a stack, and which was discarded
  along with the whole record.

It also returned null when no frame resolved a module base, dropping the above
and the nested record with them. Now a FatalError is returned either way.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

[#unigram](?q=%23unigram)