diff --git a/tools/aconfig/aconfig/src/codegen/java.rs b/tools/aconfig/aconfig/src/codegen/java.rs
index 71f743b..2f2889c 100644
--- a/tools/aconfig/aconfig/src/codegen/java.rs
+++ b/tools/aconfig/aconfig/src/codegen/java.rs
@@ -547,14 +547,26 @@
                         enabledRw = reader.getBooleanFlagValue("enabled_rw", true);
                         disabledRwInOtherNamespace = reader.getBooleanFlagValue("disabled_rw_in_other_namespace", false);
                     } else {
-                        Log.e(TAG, "encountered an AconfigStorageReadException");
+                        if (error.getMessage() != null) {
+                            Log.e(TAG, error.getMessage());
+                        } else {
+                            Log.e(TAG, "Encountered a null AconfigStorageReadException");
+                        }
                     }
                 } catch (Exception e) {
-                    Log.e(TAG, e.getMessage());
+                    if (e.getMessage() != null) {
+                        Log.e(TAG, e.getMessage());
+                    } else {
+                        Log.e(TAG, "Encountered a null Exception");
+                    }
                 } catch (NoClassDefFoundError e) {
                     // for mainline module running on older devices.
                     // This should be replaces to version check, after the version bump.
-                    Log.e(TAG, e.getMessage());
+                    if (e.getMessage() != null) {
+                        Log.e(TAG, e.getMessage());
+                    } else {
+                        Log.e(TAG, "Encountered a null NoClassDefFoundError");
+                    }
                 }
                 isCached = true;
             }
diff --git a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
index b482123..3fc444a 100644
--- a/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
+++ b/tools/aconfig/aconfig/templates/FeatureFlagsImpl.java.template
@@ -50,14 +50,26 @@
             {{ -endfor }}
             {{ -endfor }}
             } else \{
-                Log.e(TAG, "encountered an AconfigStorageReadException");
+                if (error.getMessage() != null) \{
+                    Log.e(TAG, error.getMessage());
+                } else \{
+                    Log.e(TAG, "Encountered a null AconfigStorageReadException");
+                }
             }
         } catch (Exception e) \{
-            Log.e(TAG, e.getMessage());
+            if (e.getMessage() != null) \{
+                Log.e(TAG, e.getMessage());
+            } else \{
+                Log.e(TAG, "Encountered a null Exception");
+            }
         } catch (NoClassDefFoundError e) \{
             // for mainline module running on older devices.
             // This should be replaces to version check, after the version bump.
-            Log.e(TAG, e.getMessage());
+            if (e.getMessage() != null) \{
+                Log.e(TAG, e.getMessage());
+            } else \{
+                Log.e(TAG, "Encountered a null NoClassDefFoundError");
+            }
         }
         isCached = true;
     }
