8.4 KiB
🔍 Troubleshooting TAT Alerts Not Showing
Quick Diagnosis Steps
Step 1: Check if Redis is Connected
Look at your backend console when you start the server:
✅ Good - Redis is working:
✅ [TAT Queue] Connected to Redis
✅ [TAT Worker] Worker is ready and listening
❌ Bad - Redis is NOT working:
⚠️ [TAT Worker] Redis connection failed
⚠️ [TAT Queue] Redis connection failed after 3 attempts
If you see the bad message:
→ TAT alerts will NOT be created because the worker isn't running
→ You MUST setup Redis first (see START_HERE.md)
Step 2: Verify TAT Alerts Table Exists
Run this SQL:
SELECT COUNT(*) FROM tat_alerts;
Expected Result:
- If table exists: You'll see a count (maybe 0)
- If table doesn't exist: Error "relation tat_alerts does not exist"
If table doesn't exist:
cd Re_Backend
npm run migrate
Step 3: Check if TAT Alerts Exist in Database
Run this SQL:
-- Check if ANY alerts exist
SELECT
ta.alert_id,
ta.threshold_percentage,
ta.alert_sent_at,
ta.alert_message,
ta.metadata->>'requestNumber' as request_number,
ta.metadata->>'approverName' as approver_name
FROM tat_alerts ta
ORDER BY ta.alert_sent_at DESC
LIMIT 10;
If query returns 0 rows: → No alerts have been created yet → This means:
- Redis is not connected, OR
- No requests have been submitted, OR
- Not enough time has passed (wait 3 min in test mode)
Step 4: Check API Response
Option A: Use Debug Endpoint
Call this URL in your browser or Postman:
GET http://localhost:5000/api/debug/tat-status
You'll see:
{
"success": true,
"status": {
"redis": {
"configured": true,
"url": "rediss://****@upstash.io:6379",
"testMode": true
},
"database": {
"connected": true,
"tatAlertsTableExists": true,
"totalAlerts": 0
}
}
}
Option B: Check Workflow Details Response
For a specific request:
GET http://localhost:5000/api/debug/workflow-details/REQ-2025-XXXXX
You'll see:
{
"success": true,
"structure": {
"hasTatAlerts": true,
"tatAlertsCount": 2
},
"tatAlerts": [
{
"alertType": "TAT_50",
"thresholdPercentage": 50,
"alertSentAt": "...",
...
}
]
}
Step 5: Check Frontend Console
Open browser DevTools (F12) → Console
When you open Request Detail, you should see:
// Look for the API response
Object {
workflow: {...},
approvals: [...],
tatAlerts: [...] // ← Check if this exists
}
If tatAlerts is missing or empty:
→ Backend is not returning it (go back to Step 3)
If tatAlerts exists but not showing:
→ Frontend rendering issue (check Step 6)
Step 6: Verify Frontend Code
Check if tatAlerts are being processed:
Open Re_Figma_Code/src/pages/RequestDetail/RequestDetail.tsx
Search for this line (around line 235 and 493):
const tatAlerts = Array.isArray(details.tatAlerts) ? details.tatAlerts : [];
This should be there! If not, the code wasn't applied.
Then search for (around line 271 and 531):
const levelAlerts = tatAlerts.filter((alert: any) => alert.levelId === levelId);
And in the JSX (around line 1070):
{step.tatAlerts && step.tatAlerts.length > 0 && (
<div className="mt-3 space-y-2">
{step.tatAlerts.map((alert: any, alertIndex: number) => (
🐛 Common Issues & Fixes
Issue 1: "TAT alerts not showing in UI"
Cause: Redis not connected
Fix:
- Setup Upstash: https://console.upstash.com/
- Add to
.env:REDIS_URL=rediss://default:...@upstash.io:6379 TAT_TEST_MODE=true - Restart backend
- Look for "Connected to Redis" in logs
Issue 2: "tat_alerts table doesn't exist"
Cause: Migrations not run
Fix:
cd Re_Backend
npm run migrate
Issue 3: "No alerts in database"
Cause: No requests submitted or not enough time passed
Fix:
- Create a new workflow request
- SUBMIT the request (not just save as draft)
- Wait:
- Test mode: 3 minutes for 50% alert
- Production: Depends on TAT (e.g., 12 hours for 24-hour TAT)
Issue 4: "tatAlerts is undefined in API response"
Cause: Backend code not updated
Fix:
Check Re_Backend/src/services/workflow.service.ts line 698:
return { workflow, approvals, participants, documents, activities, summary, tatAlerts };
// ^^^^^^^^
// Make sure tatAlerts is included!
Issue 5: "Frontend not displaying alerts even though they exist"
Cause: Frontend code not applied or missing key
Fix:
- Check browser console for errors
- Verify
step.tatAlertsis defined in approval flow - Check if alerts have correct
levelIdmatching approval level
📊 Manual Test Steps
Step-by-Step Debugging:
1. Check Redis Connection:
# Start backend and look for:
✅ [TAT Queue] Connected to Redis
2. Create and Submit Request:
# Via frontend or API:
POST /api/workflows/create
POST /api/workflows/{id}/submit
3. Wait for Alert (Test Mode):
# For 6-hour TAT in test mode:
# Wait 3 minutes for 50% alert
4. Check Database:
SELECT * FROM tat_alerts ORDER BY alert_sent_at DESC LIMIT 5;
5. Check API Response:
GET /api/workflows/{requestNumber}/details
# Look for tatAlerts array in response
6. Check Frontend:
// Open DevTools Console
// Navigate to Request Detail
// Check the console log for API response
🔧 Debug Commands
Check TAT System Status:
curl http://localhost:5000/api/debug/tat-status
Check Workflow Details for Specific Request:
curl http://localhost:5000/api/debug/workflow-details/REQ-2025-XXXXX
Check Database Directly:
-- Total alerts
SELECT COUNT(*) FROM tat_alerts;
-- Alerts for specific request
SELECT * FROM tat_alerts
WHERE request_id = (
SELECT request_id FROM workflow_requests
WHERE request_number = 'REQ-2025-XXXXX'
);
-- Pending levels that should get alerts
SELECT
w.request_number,
al.approver_name,
al.status,
al.tat_start_time,
CASE
WHEN al.tat_start_time IS NULL THEN 'No TAT monitoring started'
ELSE 'TAT monitoring active'
END as tat_status
FROM approval_levels al
JOIN workflow_requests w ON al.request_id = w.request_id
WHERE al.status IN ('PENDING', 'IN_PROGRESS');
📝 Checklist for TAT Alerts to Show
Must have ALL of these:
- Redis connected (see "Connected to Redis" in logs)
- TAT worker running (see "Worker is ready" in logs)
- Request SUBMITTED (not draft)
- Enough time passed (3 min in test mode for 50%)
- tat_alerts table exists in database
- Alert records created in tat_alerts table
- API returns tatAlerts in workflow details
- Frontend receives tatAlerts from API
- Frontend displays tatAlerts in workflow tab
🆘 Still Not Working?
Provide These Details:
- Backend console output when starting server
- Result of:
curl http://localhost:5000/api/debug/tat-status - Database query result:
SELECT COUNT(*) FROM tat_alerts; - Browser console errors (F12 → Console)
- Request number you're testing with
🎯 Most Common Cause
99% of the time, TAT alerts don't show because:
❌ Redis is not connected
How to verify:
# When you start backend, you should see:
✅ [TAT Queue] Connected to Redis
# If you see this instead:
⚠️ [TAT Queue] Redis connection failed
# Then:
# 1. Setup Upstash: https://console.upstash.com/
# 2. Add REDIS_URL to .env
# 3. Restart backend
🚀 Quick Fix Steps
If alerts aren't showing, do this IN ORDER:
# 1. Check .env file has Redis URL
cat Re_Backend/.env | findstr REDIS_URL
# 2. Restart backend
cd Re_Backend
npm run dev
# 3. Look for "Connected to Redis" in console
# 4. Create NEW request (don't use old ones)
# 5. SUBMIT the request
# 6. Wait 3 minutes (in test mode)
# 7. Refresh Request Detail page
# 8. Go to Workflow tab
# 9. Alerts should appear under approver card
Need more help? Share the output of /api/debug/tat-status endpoint!
Last Updated: November 4, 2025
Team: Royal Enfield Workflow