diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index c3efcb1..04ec11c 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -2684,6 +2684,20 @@
                 WallpaperData wallpaper = mWallpaperMap.get(mCurrentUserId);
                 WallpaperData lockWallpaper = mLockWallpaperMap.get(mCurrentUserId);
 
+                // remove gone UIDs from the map
+                boolean arrayChanged = false;
+                final int uidCount = wallpaper.mUidToDimAmount.size();
+                int[] uids = new int[uidCount];
+                for (int i = 0; i < uidCount; i++) {
+                    uids[i] = wallpaper.mUidToDimAmount.keyAt(i);
+                }
+                for (Integer u : uids) {
+                    final String cname = mPackageManagerInternal.getNameForUid(u);
+                    if (cname != null && !cname.isEmpty()) continue;
+                    wallpaper.mUidToDimAmount.remove(u);
+                    arrayChanged = true;
+                }
+
                 if (dimAmount == 0.0f) {
                     wallpaper.mUidToDimAmount.remove(uid);
                 } else {
@@ -2718,7 +2732,7 @@
                         changed = true;
                     }
                 }
-                if (changed) {
+                if (changed || arrayChanged) {
                     saveSettingsLocked(wallpaper.userId);
                 }
             }
