diff --git a/html/js/network/socketHandlers.js b/html/js/network/socketHandlers.js
index 8ff34ee..2107939 100644
--- a/html/js/network/socketHandlers.js
+++ b/html/js/network/socketHandlers.js
@@ -719,18 +719,24 @@ const SocketHandlers = {
} catch (err) {
console.log('Smirk payment declined/failed, falling back to manual:', err);
- var errMsg = String(err.message || err || '');
+ var errMsg = String(err.message || err || '').toLowerCase();
- if (errMsg.indexOf('context invalidated') !== -1) {
- // Extension was reloaded/updated — stale context
- $('#messages').append($('
').text(
- 'Smirk extension was reloaded. Please refresh the page to re-enable Smirk payments. Using manual payment for now.'
- ));
- SmirkAuth._isLinked = false;
- } else {
+ // Check if this is a user-initiated denial vs extension error
+ var isUserDenied = errMsg.indexOf('denied') !== -1 ||
+ errMsg.indexOf('rejected') !== -1 ||
+ errMsg.indexOf('cancelled') !== -1 ||
+ errMsg.indexOf('user') !== -1;
+
+ if (isUserDenied) {
$('#messages').append($('').text(
'Smirk payment cancelled. Use the address below.'
));
+ } else {
+ // Extension error (context invalidated, service worker issue, etc.)
+ $('#messages').append($('').text(
+ 'Smirk payment unavailable — using manual payment. Try refreshing the page to fix Smirk.'
+ ));
+ SmirkAuth._isLinked = false;
}
UI.scrollChat();