When something isn't working, use this checklist from easiest to hardest fix
-
Check if services are running
curl http://localhost:8000/health(backend)- Check iOS simulator is open
- Check terminal for error messages
-
Verify basic connectivity
- Backend responding:
curl http://localhost:8000/health - Frontend loading in simulator
- No obvious error messages in logs
- Backend responding:
-
Check environment variables
.envfile exists and readableMOCK_MODE=falsefor real database- Supabase credentials present
-
Restart backend
pkill -f "python main.py" && cd python-backend && source venv/bin/activate && python main.py
-
Restart iOS simulator
- Close simulator
npx expo run:ios
-
Clear caches
npx expo start --clear- Restart Metro bundler
-
Check port conflicts
lsof -ti:8000(backend port)lsof -ti:8081(Metro port)- Kill conflicting processes
-
Verify file paths and imports
- Check import paths in code
- Verify file exists where expected
- Check for typos in file names
-
Database connection issues
- Verify Supabase project is accessible
- Check API keys are correct
- Test with
curlto Supabase REST API
-
Check syntax errors
- Look for TypeScript/JavaScript errors
- Check Python syntax in backend
- Verify SQL syntax in database queries
-
Debug API endpoints
- Test with
curlor Postman - Check request/response format
- Verify authentication headers
- Test with
-
Check data flow
- Frontend β Backend β Database
- Verify data types match
- Check for null/undefined values
-
Environment setup problems
- Reinstall dependencies
- Check Python virtual environment
- Verify Node.js version compatibility
-
Database schema issues
- Check table structure matches code
- Verify foreign key relationships
- Run database migrations
-
Platform-specific issues
- iOS simulator vs device differences
- Metro bundler configuration
- Expo SDK version compatibility
-
Full environment reset
- Delete
node_modules, reinstall - Recreate Python virtual environment
- Reset iOS simulator
- Delete
-
Database reset
- Drop and recreate database schema
- Reseed with fresh data
- Check for data corruption
-
Project reconstruction
- Create new Expo project
- Copy over code files
- Reconfigure from scratch
- "It was working before" β Start with Level 1-2
- "New feature not working" β Start with Level 3-4
- "Nothing works at all" β Start with Level 5-6
- "Intermittent issues" β Start with Level 2-3
# Kill processes on ports
lsof -ti:8000 | xargs kill -9
lsof -ti:8081 | xargs kill -9
# Restart backend
cd python-backend && source venv/bin/activate && python main.py
# Restart frontend
npx expo start --clear
# Test API
curl http://localhost:8000/healthCreated: October 2025 For: PennApps Meetup App