From 25ac2a2c6bfd27b9744a6e4f0a06e5f05545f653 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Fri, 30 Jan 2026 10:32:40 -0500 Subject: [PATCH] Handle NIP-44 decryptor DM errors --- js/ui/profileModalController.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/js/ui/profileModalController.js b/js/ui/profileModalController.js index 17bd5056..6c78764a 100644 --- a/js/ui/profileModalController.js +++ b/js/ui/profileModalController.js @@ -5212,6 +5212,15 @@ export class ProfileModalController { const error = detail?.error || detail?.failure || detail; const reason = detail?.context?.reason || ""; const errorCode = error?.code || ""; + const errorMessage = + typeof error === "string" + ? error + : typeof error?.message === "string" + ? error.message + : ""; + const requiresNip44Decryptor = + typeof errorMessage === "string" && + errorMessage.includes("Gift wrap events require a NIP-44 decryptor"); const isBenign = reason === "no-decryptors" || @@ -5231,6 +5240,21 @@ export class ProfileModalController { return; } + if (requiresNip44Decryptor) { + const nip44Message = + "NIP-17 direct messages require a NIP-44-capable signer or extension. Unlock or update your extension to continue."; + if (!this.directMessagesCache.length) { + this.setMessagesLoadingState("error", { + message: nip44Message, + }); + return; + } + + this.setMessagesAnnouncement(nip44Message); + this.updateMessagesReloadState(); + return; + } + if (!this.directMessagesCache.length) { this.setMessagesLoadingState("error", { message: "Unable to sync direct messages right now.",