Exception Notification

Be aware of your application exceptions

  1. Pushlink catches all unhandled exceptions in your app by default. It doesn't block the natural exceptions life cycle.

  2. You can also send handled exceptions calling PushLink.sendAsyncException().

  3. Pushlink always sends the exceptions asynchronously and guarantees its delivery.

  4. If you also want to get the last 100 LogCat's lines, just add android.permission.READ_LOGS in AndroidManifest.xml

Sending Limit

  • Limits include handled and unhandled exceptions.

  • PushLink was not designed to be a remote log system. Try not sending network issues or something like that.

  • Each app has its own sending limit.

  • It's calculated using the last 24H and it isn't cumulative.

  • Formula: sendingLimit == planQuantity * 2

  • Ex1: free plan (5 installations) can send 10 exceptions in the last 24H for each app.

  • Ex2: 200 installations can send 400 exceptions in the last 24H for each app.

Status

The messages you are going to see in the Android log system:

  • REGISTERED

    • Exception sent.

  • QUEUED

    • Exception not sent but queued due to: java.lang.Exception: Any reason.

  • LOST

    • Exception sent but rejected: Invalid API Key. Probably caused by the wrong configuration.

    • Exception sent but rejected: Invalid Package. You probably never uploaded this app.

    • Exception sent but rejected: Invalid APK Hash. Probably you are in a development environment. You did not upload this version yet.

    • Exception sent but rejected: The application [app name] has exceeded the 24H sending limit.

//When sending exception manually, PushLink doesn't print it in logcat. You have to print it by yourself. 
try {
  ...
} catch (Throwable t) {
  Log.e("MyApp", "Some", t);
  PushLink.sendAsyncException(t);
  //or
  Map<String, String> moreInfo = ... 
  PushLink.sendAsyncException(t, moreInfo);
}
...
//You can also disable the automatic exception catch/send
PushLink.disableExceptionNotification();
...
//To receive LogCat last ones 100 lines just add <uses-permission android:name="android.permission.READ_LOGS" />

Last updated