Common Issues & Troubleshooting
Welcome to the HarborDB troubleshooting guide. This comprehensive resource helps you quickly identify and resolve the most common issues encountered while working with HarborDB and PostgreSQL. Whether you're experiencing connection problems, slow performance, or interface issues, you'll find step-by-step solutions here.
How to Use This Guide
- Identify your issue from the categories below
- Follow the troubleshooting steps in order
- Try the solutions until the issue is resolved
- If still unresolved, use the "Contacting Support" section
Quick Reference: Common Issues
| Issue | Likely Cause | Quick Solution | | --------------------------- | ------------------------------------- | ----------------------------------------- | | Can't connect to PostgreSQL | Server not running, firewall blocking | Start PostgreSQL, check firewall settings | | Slow query performance | Missing indexes, large datasets | Add indexes, use LIMIT, optimize queries | | High memory usage | Too many open tabs, large result sets | Close unused tabs, enable streaming mode | | Export fails | Permission issues, disk full | Check file permissions, free disk space | | UI feels sluggish | System resource constraints | Close other apps, restart HarborDB |
Connection Issues
"Cannot connect to PostgreSQL server"
Symptoms:
- Connection timeout errors
- "Connection refused" messages
- Infinite loading when testing connection
Step-by-Step Troubleshooting:
-
Check PostgreSQL Server Status:
# In Terminal, check if PostgreSQL is running pg_isready -h localhost -p 5432- If not running:
brew services start postgresql(Homebrew) or start via System Preferences
- If not running:
-
Verify Connection Details:
- Hostname:
localhostfor local, correct IP/hostname for remote - Port: Default is
5432, confirm your PostgreSQL port - Database name: Must exist before connecting
- Username/password: Case-sensitive, check credentials
- Hostname:
-
Check Firewall Settings:
- System Preferences → Security & Privacy → Firewall
- Ensure PostgreSQL port (5432) is allowed
- Try temporarily disabling firewall for testing
-
Test Network Connectivity:
# For remote servers ping your-server-address telnet your-server-address 5432
Common Solutions:
- ✅ Start PostgreSQL service
- ✅ Correct hostname/IP address
- ✅ Open firewall port 5432
- ✅ Use correct credentials
"Password authentication failed"
Causes:
- Incorrect username or password
- PostgreSQL authentication method mismatch
- User lacks database permissions
Solutions:
-
Reset PostgreSQL Password:
-- Connect as superuser (via command line) ALTER USER username WITH PASSWORD 'new_password'; -
Check Authentication Method:
- View
pg_hba.conffile - Common methods:
md5,scram-sha-256,trust - Update method if needed, restart PostgreSQL
- View
-
Verify User Permissions:
-- List users and permissions \du -- List databases and access \l
SSL/TLS Connection Errors
When connecting to remote servers:
-
Check SSL Requirements:
- Server may require specific SSL mode
- May need certificate import
-
Try Different SSL Modes in HarborDB:
- Start with
prefer - Then try
require - Finally
verify-full(requires certificate)
- Start with
-
Import Certificates if using
verify-full:- Obtain certificate from server administrator
- Import to macOS Keychain Access
- Grant HarborDB access to certificate
Performance Issues
Slow Query Execution
Diagnosis Steps:
-
Use EXPLAIN to Analyze:
- Click "Explain" (⚡) button in HarborDB
- Look for "Seq Scan" (full table scan) - often slow
- Look for "Index Scan" - usually faster
-
Check for Missing Indexes:
-- Find frequently filtered columns without indexes SELECT schemaname, tablename, attname FROM pg_stats WHERE schemaname NOT LIKE 'pg_%' AND n_distinct > 100 AND attname NOT IN ( SELECT column_name FROM information_schema.columns WHERE table_schema = schemaname AND table_name = tablename ); -
Add Appropriate Indexes:
-- Single column index CREATE INDEX idx_table_column ON table_name(column_name); -- Multi-column index for common query patterns CREATE INDEX idx_table_col1_col2 ON table_name(col1, col2);
Quick Performance Fixes:
- Add
LIMITclause to exploratory queries - Select only needed columns (not
SELECT *) - Use WHERE clauses with indexed columns
- Avoid functions in WHERE clauses that prevent index use
High Memory Usage
Symptoms:
- HarborDB uses excessive RAM (check Activity Monitor)
- System becomes sluggish
- "Out of memory" errors
Solutions:
-
Reduce Query Cache Size:
- Preferences → Performance → Query Cache
- Reduce from default 256MB to 128MB if memory constrained
-
Enable Streaming Mode:
- Preferences → Performance → Streaming Results
- Enable for results > 10,000 rows
- Reduces memory usage for large datasets
-
Manage Open Tabs:
- Close unused query tabs
- HarborDB keeps result sets in memory per tab
- Regular work: 5-10 tabs maximum
-
Restart HarborDB:
- Quit and restart daily during heavy use
- Clears accumulated memory usage
Application Feels Sluggish
Quick Fixes:
-
Close Other Applications:
- Especially resource-intensive apps (Chrome with many tabs, Docker, etc.)
- Check Activity Monitor for memory pressure
-
Reduce UI Animations:
- Preferences → Appearance → Disable animations
- Smoother experience on older hardware
-
Simplify Interface:
- Collapse sidebar sections not in use
- Use simpler color theme
- Disable syntax highlighting for very large queries
Export and File Issues
Export Fails or Creates Empty Files
Common Causes and Solutions:
-
Permission Issues:
# Check folder permissions ls -la ~/Desktop/ # Try different save location # Use Documents folder instead of Desktop -
Disk Space Problems:
# Check available disk space df -h # Need at least 2x export size free -
File Format Issues:
- CSV: Try different delimiter (comma, semicolon, tab)
- CSV: Add text qualifiers (quotes around fields)
- JSON: Try both "Pretty" and "Compact" formats
-
Large Export Optimization:
- Export in smaller chunks
- Use CSV instead of JSON for large datasets
- Enable compression in export settings
"File Not Found" or Missing Exports
-
Check Default Save Location:
- Preferences → Export → Default Save Location
- Change to frequently accessed folder
-
Search for Files:
# Search for recent CSV/JSON files find ~ -name "*.csv" -mtime -1 find ~ -name "*.json" -mtime -1 -
Check Trash:
- Exports might have been accidentally deleted
- Restore from Trash if found
Interface and Display Issues
Theme Not Applying Correctly
macOS Dark/Light Mode Issues:
-
Check System Settings:
- System Settings → Appearance
- Ensure "Auto" or desired theme selected
-
Restart HarborDB:
- Quit completely (⌘ + Q)
- Reopen to apply system theme
-
Force Theme in HarborDB:
- Preferences → Appearance → Theme
- Choose "Light", "Dark", or "System"
Missing Features or Menus
-
Update HarborDB:
- Check for updates (HarborDB → Check for Updates)
- App Store → Updates tab
-
Reset Interface Layout:
- Window → Reset Layout
- Restores default panel arrangement
-
Check Feature Availability:
- Some features require specific PostgreSQL versions
- Verify compatibility in feature documentation
Text Display Problems
Font Size/Readability Issues:
-
Adjust Editor Font Size:
- Preferences → Editor → Font Size
- Increase for better readability
-
Use macOS Zoom:
- System Settings → Accessibility → Zoom
- Enable for temporary magnification
-
High Contrast Mode:
- System Settings → Accessibility → Display
- Increase contrast for better visibility
macOS-Specific Issues
"App is Damaged" Error
When opening HarborDB:
# Remove quarantine attribute
sudo xattr -cr /Applications/HarborDB.app
# Reopen HarborDB
open /Applications/HarborDB.app
Gatekeeper Warnings
For direct downloads (not App Store):
- System Settings → Privacy & Security
- Scroll to "Security" section
- Click "Open Anyway" next to HarborDB warning
- Confirm opening
Touch ID/Keychain Access Issues
"HarborDB wants to use your password" errors:
-
Reset Keychain Permissions:
- Open Keychain Access app
- Search for "HarborDB"
- Delete existing entries
- Re-add connection in HarborDB
-
Repair Keychain:
- Keychain Access → File → Keychain First Aid
- Run repair on "Login" keychain
Compatibility with macOS Versions
Minimum: macOS 12.0 (Monterey) Recommended: macOS 13.0 (Ventura) or later
Check Compatibility:
# Check macOS version
sw_vers
# Check architecture (Apple Silicon vs Intel)
uname -m
Database-Specific Issues
"Relation does not exist"
When querying tables:
-
Check Schema:
-- List all tables in current schema \dt -- List tables in all schemas SELECT schemaname, tablename FROM pg_tables WHERE tablename LIKE '%your_table%'; -
Use Qualified Names:
-- Instead of: SELECT * FROM users; -- Use schema qualification: SELECT * FROM public.users; SELECT * FROM auth.users; -
Set Default Schema:
- Edit connection in HarborDB
- Set "Default Schema" to commonly used schema
Permission Errors on Database Objects
Permission denied for relation
-
Check Your Permissions:
-- Connect as superuser or table owner SELECT grantee, privilege_type FROM information_schema.role_table_grants WHERE table_name = 'your_table'; -
Request Permissions:
-- Example: Grant SELECT permission GRANT SELECT ON table_name TO your_username;
Large Dataset Handling
"Out of memory" or extremely slow:
-
Use Server-Side Pagination:
-- Instead of: SELECT * FROM huge_table; -- Use: SELECT * FROM huge_table LIMIT 1000 OFFSET 0; -- Then increment OFFSET for next pages -
Enable Streaming in HarborDB:
- Preferences → Performance → Streaming Mode
- Set threshold (e.g., 10,000 rows)
-
Use Materialized Views for frequent complex queries
Network and Remote Connection Issues
Slow Remote Connections
Optimization Tips:
-
Enable Compression:
- Connection settings → Advanced → Compression
- Reduces data transfer size
-
Use SSH Tunneling:
- More secure than direct connection
- Can improve performance on restricted networks
-
Schedule Heavy Queries:
- Run during off-peak hours
- Use HarborDB's query scheduler feature
Intermittent Connection Drops
-
Increase Timeout Settings:
- Connection settings → Timeout
- Increase from 30 to 60 seconds
-
Enable Keep-Alive:
- Connection settings → Keep-Alive
- Maintains idle connections
-
Check Network Stability:
# Test network stability ping -c 100 your-server-address # Look for packet loss
Before Contacting Support
Information to Collect
If issues persist after troubleshooting, gather this information:
-
System Information:
- macOS version (Apple menu → About This Mac)
- HarborDB version (HarborDB → About HarborDB)
- PostgreSQL version (
SELECT version();)
-
Error Details:
- Exact error message (screenshot if possible)
- Steps to reproduce the issue
- When the issue started
-
Configuration Details:
- Connection settings (without passwords)
- Query causing issues (if applicable)
- Export settings (if export-related)
Diagnostic Tools in HarborDB
-
Generate Diagnostic Report:
- Help → Create Diagnostic Report
- Includes logs, configuration, system info
-
View Application Logs:
- Help → Show Logs
- Filter for error and warning messages
-
Console.app for System Logs:
- Open Console.app
- Search for "HarborDB"
- Look for crash reports
Quick Self-Check
Before contacting support, verify:
- [ ] macOS is up to date
- [ ] HarborDB is latest version
- [ ] PostgreSQL server is running
- [ ] Network connection is stable
- [ ] Sufficient disk space available
- [ ] User has necessary permissions
Contacting Support
If you've tried all troubleshooting steps and the issue persists:
-
Email Support: support@harbordb.com
-
Include in your email:
- Diagnostic report (from Help menu)
- Screenshots of error messages
- Steps to reproduce the issue
- What troubleshooting steps you've tried
-
Expected Response Time:
- Initial response: Within 24-48 hours
- Business hours: Monday-Friday, 9AM-5PM EST
- Emergency issues: Mark email as "URGENT"
Preventive Measures
Regular Maintenance
Weekly:
- Restart HarborDB to clear memory
- Clear temporary export files
- Backup important connection settings
Monthly:
- Update HarborDB and PostgreSQL
- Review and optimize slow queries
- Clean up unused connections
Best Practices to Avoid Issues
-
Connection Management:
- Use meaningful connection names
- Regularly test connections
- Remove unused connections
-
Query Development:
- Always use LIMIT during exploration
- Test with EXPLAIN before running large queries
- Save complex queries for reuse
-
System Maintenance:
- Keep macOS updated
- Regular Time Machine backups
- Monitor disk space
Additional Resources
- HarborDB FAQ - Answers to common questions
- Getting Started Guide - Installation and setup
- Performance Optimization - Advanced tuning
- macOS Security Guide - Security best practices
Was this helpful?
Help us improve this documentation by providing feedback.