The NiftyArt team has been focused on making wallet connections more reliable, stabilizing session handling, and improving the NFT minting experience. This round of updates brings a wave of backend fixes and frontend polish that together make the platform more seamless and user-friendly.
Session and Wallet Synchronization
Prior versions of NiftyArt some users ran into frustrating loops when connecting a wallet, the wallet appeared to send information, but nothing happened in NiftyArt. The root cause was session mismatches between browser cookies and WebSocket connections.
Session expiration and cookie management:
-
WalletController.kt and Sockets.kt now verify cookie expiration and disconnect stale connections.
-
Expired sessions trigger disconnection, forcing a retry with a valid session.
-
Session.kt introduces COOKIE_MAX_AGE_IN_SECONDS and explicit cookie expiration tracking, preventing premature or malformed session creation.
Preventing race conditions:
-
session.client.js and session.js enforce consistent session refreshing while blocking duplicate concurrent requests.
-
wallet.ts introduces a disconnectInProgress flag to avoid conflicting fetch calls during wallet disconnection.
-
websocket.ts improves retry logic, preventing duplicate retries and ensuring proper UI feedback on wallet disconnection.
Long Polling and Timing Adjustments
-
The previous aggressive 30-second recycling of sessions was relaxed to 4 hours to reduce unintended disconnections.
-
WalletController.kt and Session.kt now handle disconnect signals (Q) more gracefully, ensuring that sessions terminate correctly even during polling gaps.
Multi-Tab WebSocket Support
One of the bigger backend overhauls in this release is that NiftyArt now supports multiple browser tabs under the same session. Previously, NiftyArt’s WebSocket model only supported one active tab per session, leading to message delivery failures and inconsistent wallet connections.
Fixes include:
-
Support for multiple WebSocket connections within a session (via an array of connections).
-
Coordinated session refreshes across tabs to avoid race conditions when cookies are regenerated.
-
Enhanced detection and correction of invalid session/cookie mismatches.
-
Thread safety improvements: session communication arrays are now synchronized through locks.
NFT Minting Error Handling
NFT creation has also been improved to prevent frustrating hangs or incomplete uploads.
-
NFTController.kt now returns NFT metadata consistently, including ZIP-packaged assets.
-
CreateNFTZipForm.vue and CreateMediaZipForm.vue provide standardized error reporting for failed uploads, server errors, and non-JSON responses.
-
UI improvements ensure that NFT properties (title, author, license) are correctly parsed and displayed.
To Wrap Up
This release addresses several “invisible” but critical problems, particularly around session handling and multi-tab support. The improvements mean fewer failed wallet connections, smoother NFT uploads, and a more consistent experience across browsers. As always, while many of these changes happen behind the scenes, they are part of our ongoing work to make NiftyArt stable, secure, and enjoyable to use.