This troubleshooting guide helps you resolve common issues with ProMediClinic. The guide is organized by category and includes step-by-step solutions.
🎯 Quick Diagnosis
System Health Check
# Check system status
php artisan license:ping
php artisan security:test-integrity
php artisan config:cache
php artisan route:cache
Common Quick Fixes
# Clear all caches
php artisan optimize:clear
# Reset permissions
chmod -R 755 storage bootstrap/cache
# Restart services
php artisan serve --port=8000
🚀 Installation Issues
Installation Fails to Start
Symptoms:
- Installation wizard doesn't appear
- Blank page or error on installation URL
- "Page not found" errors
Solutions:
-
Check File Permissions
chmod -R 755 storage bootstrap/cache chmod -R 644 .env -
Verify Web Server Configuration
- Ensure mod_rewrite is enabled (Apache)
- Check nginx configuration (Nginx)
- Verify document root points to
public/directory
-
Check PHP Requirements
php -v # Should be 8.1+ php -m # Check required extensions -
Clear Browser Cache
- Hard refresh (Ctrl+F5)
- Clear browser cache
- Try incognito/private mode
License Verification Fails
Symptoms:
- "Invalid purchase code" error
- "License activation failed" message
- Network timeout errors
Solutions:
-
Verify Purchase Code
- Check purchase code format:
12345678-1234-1234-1234-123456789012 - Ensure no extra spaces or characters
- Copy from CodeCanyon downloads page
- Check purchase code format:
-
Check Network Connectivity
# Test API connectivity curl -I https://api.softentra.com # Check firewall settings telnet api.softentra.com 443 -
Verify Domain Access
- Ensure domain is publicly accessible
- Check DNS resolution
- Verify SSL certificate (if using HTTPS)
-
Contact Support
- Provide purchase code and domain
- Include error logs
- Share system information
Database Connection Issues
Symptoms:
- "Database connection failed" error
- "Access denied" database errors
- Migration failures
Solutions:
-
Verify Database Credentials
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=promediclinic DB_USERNAME=your_username DB_PASSWORD=your_password -
Test Database Connection
# Test MySQL connection mysql -h 127.0.0.1 -u username -p database_name # Test PostgreSQL connection psql -h 127.0.0.1 -U username -d database_name -
Check Database Permissions
-- Grant necessary permissions GRANT ALL PRIVILEGES ON promediclinic.* TO 'username'@'localhost'; FLUSH PRIVILEGES; -
Create Database
CREATE DATABASE promediclinic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
🔧 Application Issues
Dashboard Not Loading
Symptoms:
- Blank dashboard page
- JavaScript errors in console
- "Loading..." message persists
Solutions:
-
Check JavaScript Console
- Open browser dev tools (F12)
- Check Console tab for errors
- Look for 404 errors or JavaScript errors
-
Verify Asset Compilation
npm run build php artisan optimize -
Check File Permissions
chmod -R 755 public/build chmod -R 755 storage -
Clear Application Cache
php artisan cache:clear php artisan view:clear php artisan config:clear
Email Not Sending
Symptoms:
- Emails not received
- "SMTP error" messages
- Email delivery failures
Solutions:
-
Verify SMTP Settings
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your_email@gmail.com MAIL_PASSWORD=your_app_password MAIL_ENCRYPTION=tls -
Test Email Configuration
# Test email sending php artisan tinker Mail::raw('Test email', function($message) { $message->to('test@example.com')->subject('Test'); }); -
Check Email Logs
tail -f storage/logs/laravel.log -
Use Mail Testing Service
- Use Mailtrap for testing
- Configure Mailpit for local testing
- Test with different SMTP providers
Calendar Sync Issues
Symptoms:
- External calendar not syncing
- Duplicate appointments
- Sync errors in logs
Solutions:
-
Verify API Credentials
- Check Google Calendar API setup
- Verify OAuth tokens
- Ensure API quotas not exceeded
-
Check Sync Settings
# Check sync configuration php artisan config:show calendar -
Test API Connectivity
# Test Google Calendar API curl -H "Authorization: Bearer YOUR_TOKEN" \ https://www.googleapis.com/calendar/v3/calendars/primary/events -
Review Sync Logs
tail -f storage/logs/calendar-sync.log
🔐 Security Issues
License Validation Errors
Symptoms:
- "License validation failed" messages
- Application access blocked
- Integrity violation errors
Solutions:
-
Run License Health Check
php artisan license:ping --detailed php artisan license:test-integrity -
Check License Configuration
php artisan config:show license -
Verify File Integrity
php artisan security:test-integrity --detailed -
Contact License Support
- Provide license key (obfuscated)
- Include error logs
- Share system information
Permission Errors
Symptoms:
- "Access denied" errors
- Users cannot access features
- Role permission issues
Solutions:
-
Check User Roles
# Check user permissions php artisan tinker $user = User::find(1); $user->roles; $user->permissions; -
Verify Role Configuration
- Check role assignments in admin panel
- Verify permission inheritance
- Review role hierarchy
-
Reset Permissions
php artisan db:seed --class=PermissionSeeder -
Check Middleware
- Verify middleware registration
- Check route protection
- Review access control logic
📊 Performance Issues
Slow Page Load Times
Symptoms:
- Pages take long to load
- Timeout errors
- High server resource usage
Solutions:
-
Enable Caching
php artisan config:cache php artisan route:cache php artisan view:cache php artisan optimize -
Check Database Performance
-- Check slow queries SHOW PROCESSLIST; -- Analyze table performance ANALYZE TABLE appointments; -
Optimize Assets
npm run production php artisan optimize -
Review Server Resources
- Check CPU and memory usage
- Monitor disk space
- Review database performance
High Memory Usage
Symptoms:
- "Memory limit exceeded" errors
- Server becomes unresponsive
- PHP fatal errors
Solutions:
-
Increase PHP Memory Limit
; php.ini memory_limit = 512M -
Optimize Database Queries
// Use eager loading $appointments = Appointment::with('user', 'eventType')->get(); // Use pagination $appointments = Appointment::paginate(50); -
Enable OPcache
; php.ini opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000 -
Review Code for Memory Leaks
- Check for infinite loops
- Review large data processing
- Optimize image handling
🗄️ Database Issues
Migration Failures
Symptoms:
- Migration errors during installation
- "Table already exists" errors
- Foreign key constraint errors
Solutions:
-
Check Migration Status
php artisan migrate:status -
Reset Migrations
php artisan migrate:fresh --seed -
Fix Specific Migration
# Rollback specific migration php artisan migrate:rollback --step=1 # Re-run migration php artisan migrate -
Check Database Schema
-- Check table structure DESCRIBE appointments; -- Check foreign keys SHOW CREATE TABLE appointments;
Data Corruption
Symptoms:
- Inconsistent data display
- Missing records
- Duplicate entries
Solutions:
-
Check Database Integrity
-- Check table integrity CHECK TABLE appointments; -- Repair table if needed REPAIR TABLE appointments; -
Restore from Backup
# Restore database backup mysql -u username -p database_name < backup.sql -
Data Validation
# Run data validation php artisan db:validate -
Contact Support
- Provide database dump
- Include error logs
- Share corruption details
🔄 Update Issues
Update Failures
Symptoms:
- Update process fails
- "Version mismatch" errors
- Broken functionality after update
Solutions:
-
Backup Before Update
# Backup database mysqldump -u username -p database_name > backup.sql # Backup files tar -czf backup.tar.gz /path/to/promediclinic -
Check Update Logs
tail -f storage/logs/update.log -
Manual Update Steps
# Clear caches php artisan optimize:clear # Run migrations php artisan migrate # Update assets npm run build # Optimize php artisan optimize -
Rollback if Needed
# Restore backup mysql -u username -p database_name < backup.sql
🆘 Getting Help
Before Contacting Support
- Check This Guide: Review relevant troubleshooting sections
- Run Diagnostics: Use built-in diagnostic commands
- Check Logs: Review application and system logs
- Test Environment: Try in different environment
Information to Provide
When contacting support, include:
-
System Information
- PHP version
- Database version
- Operating system
- Web server type
-
Error Details
- Exact error messages
- Steps to reproduce
- Screenshots if applicable
-
Log Files
- Application logs
- System logs
- Error logs
-
Configuration
- Environment file (sanitized)
- Database configuration
- License information
Support Channels
- Documentation: This troubleshooting guide
- Community Forums: User community support
- Email Support: Direct support contact
- Video Tutorials: Step-by-step video guides
Emergency Procedures
For critical issues:
-
Immediate Actions
- Enable maintenance mode
- Restore from backup
- Contact support immediately
-
Data Recovery
- Stop all operations
- Create current backup
- Restore from last known good backup
-
System Recovery
- Check system resources
- Review security logs
- Implement temporary fixes
Related Documentation: