4.2 KiB
Mark All As Read - Diagnostic Guide
Issue: Adapter returns false but no detailed logs appear
🔍 Current Situation
What We See:
[NOTIFICATION_SERVICE] Adapter leantime markAllAsRead result: false
[NOTIFICATION_SERVICE] markAllAsRead results: [ false ]
[NOTIFICATION_SERVICE] markAllAsRead overall success: false
What's Missing:
[NOTIFICATION_SERVICE] markAllAsRead called for user ...[NOTIFICATION_SERVICE] Processing adapter: leantime[NOTIFICATION_SERVICE] Calling markAllAsRead on adapter leantime[LEANTIME_ADAPTER] ===== markAllAsRead START =====← NEW: Very prominent marker
🚨 Possible Causes
1. Server Not Fully Restarted
Solution: Do a hard restart:
# Stop completely
sudo npm stop
# Or kill the process
sudo pkill -f "next start"
# Wait a few seconds
sleep 3
# Start fresh
sudo npm start
2. Next.js Build Cache
Solution: Clear cache and rebuild:
rm -rf .next
sudo npm start
3. Log Buffering/Filtering
Solution: Check if logs are being filtered. Look for ALL logs around the mark-all-as-read operation.
4. Code Not Deployed
Solution: Verify the file was saved and the server picked it up.
✅ What to Look For After Restart
Expected Complete Log Flow
When you click "Mark all as read", you should see ALL of these logs:
[NOTIFICATION_API] Mark all as read endpoint called
[NOTIFICATION_API] Mark all as read - Processing { userId: '...', timestamp: '...' }
[NOTIFICATION_SERVICE] markAllAsRead called for user ...
[NOTIFICATION_SERVICE] Available adapters: leantime
[NOTIFICATION_SERVICE] Processing adapter: leantime
[NOTIFICATION_SERVICE] Adapter leantime is configured: true
[NOTIFICATION_SERVICE] Calling markAllAsRead on adapter leantime
[LEANTIME_ADAPTER] ===== markAllAsRead START ===== ← VERY PROMINENT
[LEANTIME_ADAPTER] markAllAsRead called for userId: ...
[LEANTIME_ADAPTER] API URL: ...
[LEANTIME_ADAPTER] Has API Token: true
[LEANTIME_ADAPTER] markAllAsRead - User email: ...
[LEANTIME_ADAPTER] markAllAsRead - Leantime user ID: ...
[LEANTIME_ADAPTER] markAllAsRead - Request body: {...}
[LEANTIME_ADAPTER] markAllAsRead - API URL: ...
[LEANTIME_ADAPTER] markAllAsRead - Response status: XXX
[LEANTIME_ADAPTER] markAllAsRead - Response body: {...}
[LEANTIME_ADAPTER] markAllAsRead - Parsed response: {...}
[LEANTIME_ADAPTER] markAllAsRead - API Error: {...} ← This will show the actual error
[LEANTIME_ADAPTER] ===== markAllAsRead END (success: false) =====
[NOTIFICATION_SERVICE] Adapter leantime markAllAsRead result: false
[NOTIFICATION_SERVICE] markAllAsRead results: [ false ]
[NOTIFICATION_SERVICE] markAllAsRead overall success: false
[NOTIFICATION_SERVICE] Not invalidating caches - operation failed
[NOTIFICATION_API] Mark all as read - Failed { userId: '...', duration: '...ms' }
🎯 Critical Check
After restarting, search your logs for:
===== markAllAsRead START =====
If you DON'T see this line, the adapter method is NOT being called, which means:
- Server not restarted properly
- Code not deployed
- Different code path being used
If you DO see this line, we'll have all the details we need to fix the Leantime API call.
📋 Action Items
- ✅ Hard Restart Server (stop completely, wait, start)
- ✅ Test Mark All As Read
- ✅ Search logs for
===== markAllAsRead START ===== - ✅ Share ALL logs from the mark-all-as-read operation
- ✅ Look for
API Error:in the logs (this will show what Leantime is returning)
🔧 If Logs Still Don't Appear
If after restart you still don't see the ===== markAllAsRead START ===== log:
- Verify file was saved: Check
lib/services/notifications/leantime-adapter.tsline 220-224 - Check for syntax errors: Run
npm run buildor check for TypeScript errors - Verify server is using the file: Check if there are multiple versions or build artifacts
- Check log output: Make sure you're looking at the right log file/stream
Status: Enhanced logging with prominent markers added. Awaiting server restart and test.
Next: After restart, the ===== markAllAsRead START ===== marker will confirm the method is being called, and we'll see the exact Leantime API error.