diff --git a/src/com/android/bluetooth/audio_util/helpers/Image.java b/src/com/android/bluetooth/audio_util/helpers/Image.java
index 1dd04c1..c0623c6 100644
--- a/src/com/android/bluetooth/audio_util/helpers/Image.java
+++ b/src/com/android/bluetooth/audio_util/helpers/Image.java
@@ -24,7 +24,6 @@
 import android.os.Bundle;
 import android.util.Log;
 
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -189,7 +188,8 @@
             if (mContext == null) return null;
             input = mContext.getContentResolver().openInputStream(uri);
             art = BitmapFactory.decodeStream(input);
-        } catch (FileNotFoundException e) {
+        } catch (Exception e) {
+            Log.w("Failed to fetch image at uri=" + uri, e);
             art = null;
         }
         try {
diff --git a/tests/unit/src/com/android/bluetooth/audio_util/ImageTest.java b/tests/unit/src/com/android/bluetooth/audio_util/ImageTest.java
index 0188fa9..89bbf5c 100644
--- a/tests/unit/src/com/android/bluetooth/audio_util/ImageTest.java
+++ b/tests/unit/src/com/android/bluetooth/audio_util/ImageTest.java
@@ -67,6 +67,11 @@
             .build();
     private static final String IMAGE_STRING_1 = IMAGE_URI_1.toString();
 
+    private static final String IMAGE_HANDLE_SECURITY_ERROR = "sec_error";
+    private static final Uri IMAGE_URI_SECURITY_ERROR = TEST_CONTENT_URI.buildUpon()
+            .appendQueryParameter("handle", IMAGE_HANDLE_SECURITY_ERROR)
+            .build();
+
     private Bitmap mTestBitmap = null;
 
     @Before
@@ -91,6 +96,8 @@
                 if (IMAGE_URI_1.equals(url)) {
                     return mTestResources.openRawResourceFd(
                             com.android.bluetooth.tests.R.raw.image_200_200);
+                } else if (IMAGE_URI_SECURITY_ERROR.equals(url)) {
+                    throw new SecurityException();
                 }
                 return null;
             }
@@ -444,6 +451,18 @@
     }
 
     /**
+     * Make sure image URI resolution with erroneous resources doesn't crash and results in a null
+     * image.
+     */
+    @Test
+    public void testLoadImageFromUriWithSecurityException() {
+        Image artwork = new Image(mMockContext, IMAGE_URI_SECURITY_ERROR);
+        assertThat(artwork.getImageHandle()).isNull();
+        assertThat(artwork.getSource()).isEqualTo(Image.SOURCE_NONE);
+        assertThat(artwork.getImage()).isNull();
+    }
+
+    /**
      * Make sure you can get a string representation of this Image
      */
     @Test
