What to send
A Laravel "500 | Server Error" page is generic. The real cause is almost always in a log. To scope the fix, send:
- The URL that fails, and whether it is every page or only some routes.
- When it started and what changed just before: a deploy,
composer update, a PHP version change, a server move or a hosting control-panel change. - The last 50 lines of
storage/logs/laravel.logif you can reach it, and any web server or PHP-FPM error text. - Whether you can give scoped, revocable access to a staging copy or the repository.
Send your Laravel 500 error for a written scope and reply within 24 hours. Do not paste your .env, database passwords or API keys into the public inquiry form.
Common causes of a Laravel 500 error
- Missing or wrong
.env: after a deploy the file is absent, orAPP_KEYis empty. Typical message:No application encryption key has been specified. - Stale cached config, routes or views:
bootstrap/cache/config.phpstill points at old paths or credentials. Symptoms often appear right after a release. - Storage and cache permissions:
The stream or file "/var/www/app/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied. The web server user cannot write tostorage/orbootstrap/cache/. - Dependencies out of sync:
vendor/was not installed on the server, orcomposer.lockrequires a newer PHP than the host runs. Typical:Your Composer dependencies require a PHP version ">= 8.2.0". - Class or package not found:
Class "App\Http\Controllers\X" not foundafter a case-sensitive file system move from Windows or macOS to Linux, or after a stale autoloader. - Database errors:
SQLSTATE[HY000] [2002] Connection refused,Access denied for user, or a migration that was never run. - Shared hosting restrictions:
open_basedirlimits, a document root that points at the project folder instead ofpublic/, or a missing.htaccessrewrite, so the server errors before Laravel boots. - PHP memory or timeout limits:
Allowed memory size of 134217728 bytes exhaustedon heavy queries, imports or queue jobs.
If laravel.log is empty or missing, the failure happened before Laravel booted, so the cause sits in the web server or PHP-FPM log (for example /var/log/nginx/error.log, /var/log/apache2/error.log or your host's PHP error log) or in the document root and permissions.
Safe checks you can run yourself
- Read the log first.
tail -n 100 storage/logs/laravel.log. The first exception with a stack trace is usually the cause; later lines are often follow-on noise. - Clear caches.
php artisan optimize:clearremoves stale config, route, view and event caches. Rebuild afterwards withphp artisan config:cacheonly once the.envvalues are correct. - Check PHP version and extensions.
php -vandphp -mon the same PHP the web server uses, which can differ from the command-line PHP. Compare with therequireblock incomposer.json. - Check permissions.
storage/andbootstrap/cache/must be writable by the web server user. Avoidchmod 777; set the correct owner or group instead. - Reproduce on staging with debug on. Set
APP_DEBUG=trueonly on a private staging copy to see the exception. Never leave debug on in production: it can expose environment values.
If these do not find it, stop changing things in production and send the details; blind edits can bury the original error.
Price, delivery and guarantee
Affordable and low-cost does not mean open-ended: this fix is a $99 fixed price, agreed in writing before work starts, delivered within 48 hours of receiving the required access.
- Fully written. No calls and no project managers.
- Fixed on a staging copy first, then released to production after you approve it.
- You receive written proof: the root cause, what changed, before/after evidence and a rollback note.
- Money-back guarantee if the agreed root cause cannot be resolved.
A new feature, framework upgrade or larger rebuild is outside the fixed price and receives a separate written quote. See PHP and Laravel development for that work, or bug fix services for the general process.
FAQ
How much does it cost to fix a Laravel 500 error?
The fix is $99 fixed price for the confirmed issue, including root-cause diagnosis, a staging check, the fix, written proof and a rollback note. Typical agency hourly rates are higher and open-ended, while very low marketplace gig prices rarely include root-cause diagnosis, staging tests or a guarantee.
What is the best way to fix a Laravel 500 error?
Read storage/logs/laravel.log (or the web server log if it is empty), fix the first real exception instead of clearing things at random, test on staging, then release with a rollback plan. When choosing a Laravel bug-fix service, look for a fixed price, staging first, root-cause explanation, written proof and a guarantee.
Do I need to give you my production server login?
Not at first. Start with the error text and logs. If access is needed, it is scoped and revocable, staging first, and you can rotate credentials afterwards.
Is the 500 error a hosting problem or a code problem?
Either can be the cause. The scope distinguishes them. A host-side limit, such as a PHP version your plan cannot run, may need action from your host, and the written delivery note will say so.
What if my 500 error is intermittent?
Send the times it happened and the log lines around them. Intermittent 500s often come from memory limits, queue workers, cache drivers or a failing external API. The proof of fix covers what was checked.
Can this be done without calls?
Yes. Everything is in writing: scope, questions, approval and delivery.
Next step
Send the error and the log lines and get a written fixed-price scope within 24 hours. If the page is slow rather than broken, see performance optimization.