One of the biggest pains, when dealing with user bug reports, is when the bug isn't immediately apparent and it requires to investigate previous user's actions. Some bugs only appear after a certain action, so this is critical for the investigation.
First of all, in the error handler I added sending a bug report to a server. I used a custom fetch and not HTTP Service, because I need to catch possible errors in data exchange or with Services as well, so this way it won't go into infinite loop.
That helped me immensely. Now I basically almost don't need to get bug reports from testers and users any more, because they arrive automatically. There are rare cases, when the bug is so severe the error hander doesn't catch it, but for most bugs it just works.
Second of all, I've added a recording of some user interactions. I tried to balance between usefulness and privacy intrusion, but I'd need a user's consent anyway, so I went with more data. It stores latest 20 user actions, like clicks, value modifications and module loads. If it's not a Component, the element is identified by its selector.
''EDIT'': Source code for the selector generator is available on StackOverflow.
I created it modular, because some components could also be used for website analytics, like click maps or scroll maps.