This page covers the most common issues encountered when setting up, running, and maintaining Avalúo Vehicular — both in local development and in Docker-based production deployments. Issues are organized by symptom: find the error message or behavior that matches your situation, follow the steps, and check the general debug commands at the bottom if the problem persists.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/alber1802/AvaluoVehicular/llms.txt
Use this file to discover all available pages before exploring further.
storage/logs/laravel.log. Run the following command to stream the log in real time before trying any fix:"Permission denied" on database.sqlite (Docker)
"Permission denied" on database.sqlite (Docker)
500 error or Laravel logs contain SQLSTATE[HY000] [14] unable to open database file or Permission denied: /var/www/html/database/database.sqlite.Cause: The SQLite file was created on the host by the current user, but the container runs PHP-FPM as www-data. The file must be readable and writable by www-data (UID 33 on Alpine Linux).Fix:docker-compose up for the first time, always create the SQLite file explicitly on the host so Docker mounts it as a file (not a directory):"APP_KEY not set" / "No application encryption key" error
"APP_KEY not set" / "No application encryption key" error
RuntimeException: No application encryption key has been specified or sessions and cookies fail to work after a fresh installation or container rebuild.Cause: APP_KEY in .env / .env.docker is empty or still set to the placeholder value base64:CHANGE_ME_AFTER_KEY_GENERATE.Fix — Local:.env file inside the running container. For a persistent key across rebuilds, copy the generated base64:... value into your .env.docker file:Storage permission errors (Linux / Mac — local development)
Storage permission errors (Linux / Mac — local development)
failed to open stream: Permission denied for paths under storage/ or bootstrap/cache/. File uploads fail silently, or the application cannot write sessions and cache.Cause: The storage/ and bootstrap/cache/ directories must be writable by the web server user or the CLI user running php artisan serve.Fix:Migration errors / table not found
Migration errors / table not found
SQLSTATE[HY000]: General error: 1 no such table: sessions (or any other table name), or Inertia pages fail with a 500 because a model query hits a missing table.Cause: Migrations have not been run, or were partially rolled back.Fix — Run pending migrations:sessions or jobs tables are missing specifically, those are created by migrations that ship with Laravel Breeze and must be present for SESSION_DRIVER=database and QUEUE_CONNECTION=database to work.Assets not loading / blank white page
Assets not loading / blank white page
404 errors for /build/assets/app-*.js, or Inertia does not mount.Cause A — Production: The Vite build output is missing from public/build/. This can happen if you deployed code without running npm run build, or if the Docker image was not rebuilt after a frontend change.Fix (local):public/build/ directory is listed in .gitignore but not being generated in CI. Ensure your build pipeline includes npm ci && npm run build before deploying.Docker container won't start or keeps restarting
Docker container won't start or keeps restarting
docker-compose ps shows the container as Restarting or Exited. The application is unreachable on port 8080.Diagnosis — Check container logs:| Error in logs | Fix |
|---|---|
cannot bind to port 8080: address already in use | Change the host port in docker-compose.yml ("8081:80") or stop the conflicting process |
database is locked | Check that no other process has the SQLite file open; fix permissions (see above) |
No such file or directory: entrypoint.sh | Run docker-compose build --no-cache to regenerate the image |
| PHP-FPM fails to start | Check PHP extension errors in logs; ensure the image built successfully |
Inertia page not found / unexpected 404 on valid URL
Inertia page not found / unexpected 404 on valid URL
/registro/crear returns a 404 Not Found response, even though the route exists in routes/web.php.Cause A: The route cache contains a stale snapshot that does not include the route.Fix:verified middleware. The user will be redirected to /verify-email instead of returning 404. Check the user’s email_verified_at column in the database.Cause D: A Spatie permission check (hasPermissionTo(...)) is failing silently and returning early. Check storage/logs/laravel.log for the specific controller and method.Queue jobs not processing
Queue jobs not processing
jobs table in the database accumulates unprocessed records.Cause: The Laravel queue worker is not running.Fix — Local:laravel-worker process shows STOPPED or FATAL:Cannot log in / infinite auth redirect loop
Cannot log in / infinite auth redirect loop
/login indefinitely without logging in. The browser shows a Too Many Redirects error, or the session does not persist between requests.Cause A: Session table does not exist in the database (SESSION_DRIVER=database requires a sessions table).Fix:APP_KEY is not set or changed after sessions were created, making old session cookies unreadable.Fix:session:flush command):SESSION_DOMAIN is set to a domain that does not match the host you are accessing (e.g., you are accessing via IP but SESSION_DOMAIN is set to example.com), the browser will not send the session cookie.Fix: Set SESSION_DOMAIN=null in .env.docker for a default setup, or match it exactly to your APP_URL domain.Cause D: The user’s is_suspended flag is true. Add a temporary Tinker check:PDF generation fails
PDF generation fails
500, or produces a corrupted/empty PDF file. The archivos table record is not created.Cause A: The storage/app/public/pdfReportes/ directory does not exist or is not writable by the web server user.Fix:FILESYSTEM_DISK is not set to local, or mccarlosen/laravel-mpdf cannot find its temp directory.Fix: Verify .env.docker:{id} has no MarcaVehiculo record (the firstOrFail() call in ArchivoControler::generarPdf() will throw a ModelNotFoundException). Verify the vehicle’s id_marca references a valid brand in the marca_vehiculos table.