Recovering quickly.
FIRST, RESTORE SERVICE
Roll back. Check out the previous commit, or switch the symlink back. Diagnose afterwards, not while the site is down.
If you cannot roll back, put up a maintenance page rather than leaving errors visible.
THEN DIAGNOSE
Read the error log from the moment of the deployment Check what changed in that deployment Check whether dependencies installed correctly Check whether migrations ran Check permissions on anything newly created
COMMON CAUSES
A dependency that failed to install, leaving a missing class A migration that failed partway Configuration expected by the new code but not present on the server Cached configuration or routes from the previous version Permissions on a newly created directory
CACHED CONFIGURATION
A frequent cause. The new code expects new configuration while the cached version still holds the old. Clear the cache.
PREVENTING RECURRENCE
Make the deployment script stop on the first error Test the deployment on staging Verify the site responds as the final step of the script