diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
index 30af38e..7ca35b7 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
@@ -127,7 +127,7 @@
         try {
             drawable = mPm.getUserBadgedDrawableForDensity(new BitmapDrawable(res, bitmap),
                     info.getProfile(), badgeLocation, 0);
-        } catch (Exception e) {
+        } catch (Throwable e) {
             return bitmap;
         }
 
diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
index 0a84280..9a0831f 100644
--- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
+++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
@@ -47,7 +47,12 @@
         mResumed = false;
         mBound = false;
 
-        mInstaller.registerSessionCallback(mCallback);
+        // STOPSHIP(mokani): Remove catch block once dogfood build is bigger than LRW70.
+        // This hack is just to prevent crash in older builds.
+        try {
+            mInstaller.registerSessionCallback(mCallback);
+        } catch (Throwable e) { }
+
         // On start, send updates for all active sessions
         for (SessionInfo info : mInstaller.getAllSessions()) {
             mPendingReplays.append(info.getSessionId(), info);
@@ -72,7 +77,11 @@
 
     @Override
     public void onStop() {
-        mInstaller.unregisterSessionCallback(mCallback);
+        // STOPSHIP(mokani): Remove catch block once dogfood build is bigger than LRW70.
+        // This hack is just to prevent crash in older builds.
+        try {
+            mInstaller.unregisterSessionCallback(mCallback);
+        } catch (Throwable e) { }
     }
 
     @Override
diff --git a/src/com/android/launcher3/compat/UserManagerCompatVL.java b/src/com/android/launcher3/compat/UserManagerCompatVL.java
index e54db61..ddef431 100644
--- a/src/com/android/launcher3/compat/UserManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/UserManagerCompatVL.java
@@ -55,7 +55,7 @@
         // This hack is just to prevent crash in older builds.
         try {
             return mPm.getUserBadgedIcon(unbadged, user.getUser());
-        } catch (Exception e) {
+        } catch (Throwable e) {
             return unbadged;
         }
     }
@@ -68,8 +68,8 @@
         // STOPSHIP(mokani): Remove catch block once dogfood build is bigger than LRW70.
         // This hack is just to prevent crash in older builds.
         try {
-        return mPm.getUserBadgedLabel(label, user.getUser());
-        } catch (Exception e) {
+            return mPm.getUserBadgedLabel(label, user.getUser());
+        } catch (Throwable e) {
             return label;
         }
     }
