Re_Backend/WHY_NO_ALERTS_SHOWING.md

346 lines
7.0 KiB
Markdown

# ❓ Why Are TAT Alerts Not Showing?
## 🎯 Follow These Steps IN ORDER
### ✅ Step 1: Is Redis Connected?
**Check your backend console:**
```
Look for one of these messages:
```
**✅ GOOD (Redis is working):**
```
✅ [TAT Queue] Connected to Redis
✅ [TAT Worker] Worker is ready and listening
```
**❌ BAD (Redis NOT working):**
```
⚠️ [TAT Worker] Redis connection failed
⚠️ [TAT Queue] Redis connection failed after 3 attempts
```
**If you see the BAD message:**
**STOP HERE!** TAT alerts will NOT work without Redis!
**Setup Upstash Redis NOW:**
1. Go to: https://console.upstash.com/
2. Sign up (free)
3. Create database
4. Copy Redis URL
5. Add to `Re_Backend/.env`:
```bash
REDIS_URL=rediss://default:PASSWORD@host.upstash.io:6379
TAT_TEST_MODE=true
```
6. Restart backend
7. Verify you see "Connected to Redis"
---
### ✅ Step 2: Have You Submitted a Request?
**TAT monitoring starts ONLY when:**
- ✅ Request is **SUBMITTED** (not just created/saved)
- ✅ Status changes from DRAFT → PENDING
**To verify:**
```sql
SELECT
request_number,
status,
submission_date
FROM workflow_requests
WHERE request_number = 'YOUR_REQUEST_NUMBER';
```
**Check:**
- `status` should be `PENDING`, `IN_PROGRESS`, or later
- `submission_date` should NOT be NULL
**If status is DRAFT:**
→ Click "Submit" button on the request
→ TAT monitoring will start
---
### ✅ Step 3: Has Enough Time Passed?
**In TEST MODE (TAT_TEST_MODE=true):**
- 1 hour = 1 minute
- For 6-hour TAT:
- 50% alert at: **3 minutes**
- 75% alert at: **4.5 minutes**
- 100% breach at: **6 minutes**
**In PRODUCTION MODE:**
- 1 hour = 1 hour (real time)
- For 24-hour TAT:
- 50% alert at: **12 hours**
- 75% alert at: **18 hours**
- 100% breach at: **24 hours**
**Check when request was submitted:**
```sql
SELECT
request_number,
submission_date,
NOW() - submission_date as time_since_submission
FROM workflow_requests
WHERE request_number = 'YOUR_REQUEST_NUMBER';
```
---
### ✅ Step 4: Are Alerts in the Database?
**Run this SQL:**
```sql
-- Check if table exists
SELECT COUNT(*) FROM tat_alerts;
-- If table exists, check for your request
SELECT
ta.threshold_percentage,
ta.alert_sent_at,
ta.alert_message,
ta.metadata
FROM tat_alerts ta
JOIN workflow_requests w ON ta.request_id = w.request_id
WHERE w.request_number = 'YOUR_REQUEST_NUMBER'
ORDER BY ta.alert_sent_at;
```
**Expected Result:**
- **0 rows** → No alerts sent yet (wait longer OR Redis not connected)
- **1+ rows** → Alerts exist! (Go to Step 5)
**If table doesn't exist:**
```bash
cd Re_Backend
npm run migrate
```
---
### ✅ Step 5: Is API Returning tatAlerts?
**Test the API directly:**
**Method 1: Use Debug Endpoint**
```bash
curl http://localhost:5000/api/debug/workflow-details/YOUR_REQUEST_NUMBER
```
**Look for:**
```json
{
"structure": {
"hasTatAlerts": true, Should be true
"tatAlertsCount": 2 Should be > 0
},
"tatAlerts": [...] Should have data
}
```
**Method 2: Check Network Tab in Browser**
1. Open Request Detail page
2. Open DevTools (F12) → Network tab
3. Find the API call to `/workflows/{requestNumber}/details`
4. Click on it
5. Check Response tab
6. Look for `tatAlerts` array
---
### ✅ Step 6: Is Frontend Receiving tatAlerts?
**Open Browser Console (F12 → Console)**
**When you open Request Detail, you should see:**
```javascript
[RequestDetail] TAT Alerts received from API: 2 [Array(2)]
```
**If you see:**
```javascript
[RequestDetail] TAT Alerts received from API: 0 []
```
→ API is NOT returning alerts (go back to Step 4)
---
### ✅ Step 7: Are Alerts Being Displayed?
**In Request Detail:**
1. Click **"Workflow" tab**
2. Scroll to the approver card
3. Look under the approver's comment section
**You should see yellow/orange/red boxes with:**
```
⏳ Reminder 1 - 50% TAT Threshold
```
**If you DON'T see them:**
→ Check browser console for JavaScript errors
---
## 🔍 Quick Diagnostic
**Run ALL of these and share the results:**
### 1. Backend Status:
```bash
curl http://localhost:5000/api/debug/tat-status
```
### 2. Database Query:
```sql
SELECT COUNT(*) as total FROM tat_alerts;
```
### 3. Browser Console:
```javascript
// Open Request Detail
// Check console for:
[RequestDetail] TAT Alerts received from API: X [...]
```
### 4. Network Response:
```
DevTools → Network → workflow details call → Response tab
Look for "tatAlerts" field
```
---
## 🎯 Most Likely Issues (In Order)
### 1. Redis Not Connected (90% of cases)
**Symptom**: No "Connected to Redis" in logs
**Fix**: Setup Upstash, add REDIS_URL, restart
### 2. Request Not Submitted (5%)
**Symptom**: Request status is DRAFT
**Fix**: Click Submit button
### 3. Not Enough Time Passed (3%)
**Symptom**: Submitted < 3 minutes ago (in test mode)
**Fix**: Wait 3 minutes for first alert
### 4. TAT Worker Not Running (1%)
**Symptom**: Redis connected but no "Worker is ready" message
**Fix**: Restart backend server
### 5. Frontend Code Not Applied (1%)
**Symptom**: API returns tatAlerts but UI doesn't show them
**Fix**: Refresh browser, clear cache
---
## 🚨 Emergency Checklist
**Do this RIGHT NOW to verify everything:**
```bash
# 1. Check backend console for Redis connection
# Look for: ✅ [TAT Queue] Connected to Redis
# 2. If NOT connected, setup Upstash:
# https://console.upstash.com/
# 3. Add to .env:
# REDIS_URL=rediss://...
# TAT_TEST_MODE=true
# 4. Restart backend
npm run dev
# 5. Check you see "Connected to Redis"
# 6. Create NEW request with 6-hour TAT
# 7. SUBMIT the request
# 8. Wait 3 minutes
# 9. Open browser console (F12)
# 10. Open Request Detail page
# 11. Check console log for:
# [RequestDetail] TAT Alerts received from API: X [...]
# 12. Go to Workflow tab
# 13. Alerts should appear!
```
---
## 📞 Share These for Help
If still not working, share:
1. **Backend console output** (first 50 lines after starting)
2. **Result of**: `curl http://localhost:5000/api/debug/tat-status`
3. **SQL result**: `SELECT COUNT(*) FROM tat_alerts;`
4. **Browser console** when opening Request Detail
5. **Request number** you're testing with
6. **How long ago** was the request submitted?
---
## ✅ Working Example
**When everything works, you'll see:**
**Backend Console:**
```
✅ [TAT Queue] Connected to Redis
✅ [TAT Worker] Worker is ready
[TAT Scheduler] ✅ TAT jobs scheduled for request REQ-2025-001
```
**After 3 minutes (test mode):**
```
[TAT Processor] Processing tat50 for request REQ-2025-001
[TAT Processor] TAT alert record created for tat50
[TAT Processor] tat50 notification sent
```
**Browser Console:**
```javascript
[RequestDetail] TAT Alerts received from API: 1 [
{
alertType: "TAT_50",
thresholdPercentage: 50,
alertSentAt: "2025-11-04T...",
...
}
]
```
**UI Display:**
```
⏳ Reminder 1 - 50% TAT Threshold
50% of SLA breach reminder have been sent
...
```
---
**Most likely you just need to setup Redis! See `START_HERE.md`**
---
**Last Updated**: November 4, 2025