Notifications
Troubleshooting notifications
Fix common VitNode notification problems. A bell that does not update live, notifications that arrive late or never, missing emails, a wrong unread count and items that are no longer available.
Each section below starts from a symptom and lists the checks in the order that finds the cause fastest.
The bell does not update live
- Check the WebSocket. The browser needs a working
/api/wsconnection. See WebSocket. Without one, the bell still catches up every 60 seconds while the tab is visible. - Running several API instances? Set
REDIS_URL. Without Redis, live updates reach only tabs connected to the instance that delivered the notification. Other tabs catch up on reconnect or page load.
Notifications arrive late or never
A publishing request starts delivery right after its response. Everything else is delivered by the queue worker, which your cron adapter runs every minute.
- The cron adapter is not calling the queue worker. In development there is no
CRON_SECRET, so queued tasks wait until you run them. See Cron. - Notifications are paused. The AdminCP notifications screen shows a Notifications are paused banner. See Use the Settings sheet.
- The delivery task failed. Debug Panel ā Queue in the AdminCP (
/admin/core/debug/queue) lists failednotifications-fanouttasks with their last error. Filter by the Failed status to find them. - The member never gets it. The actor is skipped unless you pass
allowSelf: true, and members who turned the type off or fail youraccesscheck get nothing. See Choose the recipients.
Emails are not sending
- No email adapter. Run Send a test email to me from the AdminCP Settings sheet. If the tool is missing, no email adapter is configured.
- Email is disabled for the type. Check the type's Email column in the AdminCP.
- The member gets no email for the type. The default may be Not enabled by default, or the member chose otherwise.
- The delivery was skipped or failed. List deliveries with
GET /deliveriesfrom the AdminCP endpoints.failedshows a redacted error.skippedshows a reason, such asemptywhen everything was already read.
Digests go out only after their period ends, at 08:00 in the member's time zone, and include only notifications that are still unread.
The digest came at the wrong time
Digests follow the time zone the member set under Region on /settings, then the time zone of their language, then UTC. The scheduler runs every 5 minutes, so a digest can arrive up to 5 minutes after 08:00.
The unread count looks wrong
Every inbox change updates the count in the same transaction, so a wrong count is a bug worth reporting. To check and repair counts, call POST /reconcile from the AdminCP endpoints. It only reports mismatches unless you send { "dryRun": false }, which also pushes the corrected badge to open tabs.
Items say "This notification is no longer available"
The item is a placeholder. The content was deleted, the member lost access, the plugin was uninstalled, or the stored data no longer matches the type's schema and migrate could not upgrade it. Members can still read or archive the item. Plugins can tidy these up with remove().