Files
livedash-node/docs/scheduler-fixes.md
Max Kowalski 2dfc49f840 DB refactor
2025-06-27 23:05:46 +02:00

2.4 KiB

Scheduler Error Fixes

Issues Identified and Resolved

1. Invalid Company Configuration

Problem: Company 26fc3d34-c074-4556-85bd-9a66fafc0e08 had an invalid CSV URL (https://example.com/data.csv) with no authentication credentials.

Solution:

  • Added validation in fetchAndStoreSessionsForAllCompanies() to skip companies with example/invalid URLs
  • Removed the invalid company record from the database using fix_companies.js

2. Transcript Fetching Errors

Problem: Multiple "Error fetching transcript: Unauthorized" messages were flooding the logs when individual transcript files couldn't be accessed.

Solution:

  • Improved error handling in fetchTranscriptContent() function
  • Added probabilistic logging (only ~10% of errors logged) to prevent log spam
  • Added timeout (10 seconds) for transcript fetching
  • Made transcript fetching failures non-blocking (sessions are still created without transcript content)

3. CSV Fetching Errors

Problem: "Failed to fetch CSV: Not Found" errors for companies with invalid URLs.

Solution:

  • Added URL validation to skip companies with example.com URLs
  • Improved error logging to be more descriptive

Current Status

Fixed: No more "Unauthorized" error spam Fixed: No more "Not Found" CSV errors
Fixed: Scheduler runs cleanly without errors Improved: Better error handling and logging

Remaining Companies

After cleanup, only valid companies remain:

  • Demo Company (790b9233-d369-451f-b92c-f4dceb42b649)
    • CSV URL: https://proto.notso.ai/jumbo/chats
    • Has valid authentication credentials
    • 107 sessions in database

Files Modified

  1. lib/csvFetcher.js
  • Added company URL validation
  • Improved transcript fetching error handling
  • Reduced error log verbosity
  1. fix_companies.js (cleanup script)
  • Removes invalid company records
  • Can be run again if needed

Monitoring

The scheduler now runs cleanly every 15 minutes. To monitor:

# Check scheduler logs
node debug_db.js

# Test manual refresh
node -e "import('./lib/csvFetcher.js').then(m => m.fetchAndStoreSessionsForAllCompanies())"

Future Improvements

  1. Add health check endpoint for scheduler status
  2. Add metrics for successful/failed fetches
  3. Consider retry logic for temporary failures
  4. Add alerting for persistent failures