diff --git a/plugins/mod_bookmarks.lua b/plugins/mod_bookmarks.lua
index cd6eae67a..d67915f8d 100644
--- a/plugins/mod_bookmarks.lua
+++ b/plugins/mod_bookmarks.lua
@@ -87,7 +87,11 @@ local function on_retrieve_legacy_pep(event)
 	local service = mod_pep.get_pep_service(username);
 	local ok, ret = service:get_items(namespace, session.full_jid);
 	if not ok then
-		module:log("error", "Failed to retrieve PEP bookmarks of %s: %s", jid, ret);
+		if ret == "item-not-found" then
+			module:log("debug", "Got no PEP bookmarks item for %s, returning empty private bookmarks", jid);
+		else
+			module:log("error", "Failed to retrieve PEP bookmarks of %s: %s", jid, ret);
+		end
 		session.send(st.error_reply(stanza, "cancel", ret, "Failed to retrieve bookmarks from PEP"));
 		return true;
 	end
diff --git a/spec/scansion/empty_bookmarks.scs b/spec/scansion/empty_bookmarks.scs
new file mode 100644
index 000000000..3ea4fe710
--- /dev/null
+++ b/spec/scansion/empty_bookmarks.scs
@@ -0,0 +1,27 @@
+# mod_scansion_record on host 'localhost' recording started 2022-07-26T21:39:55Z
+
+[Client] Romeo
+	password: password
+	jid: juliet@localhost/UaksS4M1xYZB
+
+-----
+
+Romeo connects
+
+Romeo sends:
+	<iq xml:lang='en' type='get' id='bNBJLtpIJXpq'>
+		<pubsub xmlns='http://jabber.org/protocol/pubsub'>
+			<items node='storage:bookmarks'/>
+		</pubsub>
+	</iq>
+
+Romeo receives:
+	<iq id='bNBJLtpIJXpq' type='error'>
+		<error type='cancel'>
+			<item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
+		</error>
+	</iq>
+
+Romeo disconnects
+
+# recording ended on 2022-07-26T21:40:45Z