diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index 7daed4e6d..b65b35bab 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -237,7 +237,11 @@ class BookmarkFragment : LibraryPageFragment(), BackHandler, Accou } private suspend fun refreshBookmarks() { - context?.bookmarkStorage()?.getTree(bookmarkStore.state.tree!!.guid, false).withOptionalDesktopFolders(context) + // The bookmark tree in our 'state' can be null - meaning, no bookmark tree has been selected. + // If that's the case, we don't know what node to refresh, and so we bail out. + // See https://github.com/mozilla-mobile/fenix/issues/4671 + val currentGuid = bookmarkStore.state.tree?.guid ?: return + context?.bookmarkStorage()?.getTree(currentGuid, false).withOptionalDesktopFolders(context) ?.let { node -> var rootNode = node pendingBookmarksToDelete.forEach {