Installation issues
File permission errors after upload
File permission errors after upload
Permission denied or failed to open stream error immediately after uploading files, or the app returns a blank 500 page on first load.Cause: The storage/ and bootstrap/cache/ directories are not writable by the web server process.Solution:nginx or apache), replace www-data with the correct user. Confirm which user PHP-FPM runs as:composer install fails with memory limit error
composer install fails with memory limit error
composer install --optimize-autoloader --no-dev prints Allowed memory size of X bytes exhausted.Cause: PHP’s default memory limit (often 128 MB) is too low for Composer to resolve the dependency graph.Solution:APP_KEY is empty or key:generate warning
APP_KEY is empty or key:generate warning
No application encryption key has been specified or sessions fail immediately.Cause: The .env file is missing APP_KEY, or the value was not copied from the provided .env.Solution:Only run this if APP_KEY is blank. Running it on an existing live site will invalidate all encrypted data and active sessions..env:Document root misconfigured
Document root misconfigured
index.php is downloaded instead of executed. The .env file may be publicly accessible.Cause: The web server document root points to the project root instead of the public/ sub-directory.Solution: Update your virtual host or hosting panel to set the document root to public/. For Apache:Database issues
Migration fails or stalls
Migration fails or stalls
php artisan migrate throws an error such as SQLSTATE[42S01]: Base table or view already exists or hangs indefinitely.Cause: A previous partial migration left the schema in an inconsistent state, or the database user lacks CREATE TABLE / ALTER TABLE privileges.Solution:Check current migration state:Access denied — SQLSTATE[HY000] [1045]
Access denied — SQLSTATE[HY000] [1045]
SQLSTATE[HY000] [1045] Access denied for user.Cause: The DB_USERNAME or DB_PASSWORD in .env does not match what is configured in MySQL, or the user does not have permissions on the target database.Solution:Verify credentials manually:.env, clear the config cache:Connection refused or timeout
Connection refused or timeout
SQLSTATE[HY000] [2002] Connection refused or the page hangs before returning a database error.Cause: MySQL is not running, or DB_HOST / DB_PORT in .env point to the wrong address.Solution:Check the MySQL service:127.0.0.1, ask your provider for the correct internal hostname and update DB_HOST accordingly.Queue and Redis issues
Jobs queued but never processed
Jobs queued but never processed
php artisan queue:failed shows a growing list of failed jobs.Cause: No queue worker is running. With QUEUE_CONNECTION=database (the default in .env.example), jobs accumulate in the jobs table but are not processed unless a worker is active.Solution:Run the worker manually to test:/etc/supervisor/conf.d/tripfy-worker.conf:Redis connection refused
Redis connection refused
QUEUE_CONNECTION=redis or CACHE_DRIVER=redis is set, you see Connection refused errors or Predis\Connection\ConnectionException.Cause: Redis is not running, or REDIS_HOST / REDIS_PORT in .env are incorrect.Solution:Check the Redis service:.env back to file or database:Payment issues
Webhook not received from payment gateway
Webhook not received from payment gateway
pending. No entry appears in transactions.Cause: The gateway cannot reach your webhook URL, or the route is blocked by a firewall / CSRF middleware.Solution:Confirm the webhook URL is reachable:routes/web.php and is excluded from CSRF protection in app/Http/Middleware/VerifyCsrfToken.php:Gateway configuration not saving or credentials rejected
Gateway configuration not saving or credentials rejected
parameters JSON in the gateways table was not saved correctly, or the environment is set to test when you need live (or vice versa).Solution:- In the admin panel, go to Payment Gateways and click Edit on the gateway.
- Re-enter your API keys and confirm the Environment toggle matches your keys (test keys only work in test mode).
- Click Save, then re-test a payment.
gateways row directly:Email issues
SMTP connection failed
SMTP connection failed
Swift_TransportException: Connection could not be established with host.Cause: The SMTP credentials in .env are wrong, or the port is blocked by a firewall.Solution:Test the SMTP port is reachable:.env mail settings:Emails queued but not delivered
Emails queued but not delivered
php artisan queue:failed shows failed mail jobs.Cause: The queue worker is not running (see Jobs queued but never processed), or MAIL_MAILER is set to log instead of smtp.Solution:Check the mailer driver:.env change:Notification template variables not replaced
Notification template variables not replaced
[[package_title]] or [[guide_name]] instead of real values.Cause: The template is referencing variables that were not passed to the notification, or a custom template was added without the correct short_keys mapping.Solution:Check the short_keys JSON for the relevant template in Admin → Notification Templates. It should list every [[variable]] the template uses.For NEW_BOOKING_RECEIVED, the expected keys are:File upload issues
Uploaded files not visible after saving
Uploaded files not visible after saving
storage/app/public directory is not linked to public/storage, so files are saved but not publicly accessible.Solution:Create the symbolic link:storage/app/public is writable:S3 or DigitalOcean Spaces upload errors
S3 or DigitalOcean Spaces upload errors
InvalidAccessKeyId or NoSuchBucket when FILESYSTEM_DISK is set to s3 or spaces.Cause: The cloud storage credentials in .env are incorrect or the bucket does not exist in the specified region.Solution:For AWS S3, verify these .env values:.env, clear the config cache:Production issues
500 internal server error
500 internal server error
APP_DEBUG=false hides the details from the browser.Solution:Read the Laravel log to find the actual exception:| Cause | Fix |
|---|---|
Missing .env | Copy and configure .env from .env.example |
APP_KEY empty | Run php artisan key:generate |
storage/ not writable | Run chmod -R 775 storage/ bootstrap/cache/ |
| Config cache stale | Run php artisan config:clear && php artisan config:cache |
| Missing Composer packages | Run composer install --optimize-autoloader --no-dev |
Cache and config not reflecting .env changes
Cache and config not reflecting .env changes
.env but the application behaviour has not changed.Cause: Laravel reads from its compiled config cache (bootstrap/cache/config.php) rather than .env directly when config:cache has been run.Solution:Users logged out unexpectedly / session issues
Users logged out unexpectedly / session issues
storage/framework/sessions directory is not writable.Solution:Check SESSION_DRIVER in .env. For file-based sessions (the default), ensure the sessions directory is writable:.env if it is too short:Dynamic CSS not loading (colours wrong or unstyled)
Dynamic CSS not loading (colours wrong or unstyled)
public/assets/themes/adventra/css/tripfy.css automatically.