Apps

What is Crash reports

What it is

When an app crashes or cannot connect, it sends a log, its version and the network state to the developer's server. The developer sees the problem before the user writes in.

How we use it

Our own Python receiver in Docker on the client's server: secrets are masked on the device, and when the connection drops the report waits in a queue. No dependence on foreign services.

Where it helps a business

  • Users report "it doesn't work for me", while the developer needs the log, the version, the network state and the crash reason.
  • Reports must not go to third-party services: testers' and customers' data stays with the owner.
  • A log may contain keys, subscription links and passwords, and a report must not become a leak.
  • You want to learn about a failure before the user writes to support.

How we use it

Our apps have two report receivers on our own servers: one for the OshaPlay player and one for the VPN client. A receiver is a small Python program in Docker behind nginx; intake requires a token, reports are never served outward, and the developer reads them with a script.

  • The VPN client sends four kinds of reports: a crash, a log from the "Send diagnostics" button, entry-point probe results and a user message. In tester mode, reports about crashes and anomalies, such as a reconnect loop, an engine failure or a latency jump, go out by themselves.
  • OshaPlay sends a log of up to 5 MB, the phone model, audio outputs, headphones and the DAC check report every 12 hours, after a crash on the next launch, and immediately on a playback error. Music files are never sent.
  • Real-world value. Phone reports revealed the cause of audio stutter with the screen off on Huawei.

We build report receivers under Android and Windows apps.

Common problems

  • Secrets in the log. Subscription links, vless:// keys, UUIDs, passwords, tokens and Bearer headers are masked on the device when the log is written, not on the server. This was checked on real reports.
  • No connection. The VPN client puts reports into an on-disk queue of up to 20 files and 50 MB and sends them when the receiver is back. Sending never blocks the app.
  • Noise. Automatic reports of one kind go out at most once every 5 minutes. A 413 response discards a report, and a 403 stops sending until the app restarts.
  • Server space. OshaPlay reports are kept for 90 days and up to 800 MB in total.
  • Consent. Tester mode is on by default because all builds are still test builds, and it doubles as consent to send. For a public release it has to be switched off.

When you do not need it

If an app has a dozen users and the developer sits in the same office, the log can be collected by hand. Your own receiver pays off when there are many devices, they are far away, and the data cannot go to a third-party service.

← All terms

Need a website, a bot or automation?

Terms explained — now let's get to work: tell us about the task and we'll turn it into a clear work plan.