Problem

You visit a library's feed page or the admin web interface and you get a 500 error in your browser.

Solution

There are multiple causes for the error. An HTTP 500 error only indicates there is an internal server problem that the web server cannot resolve. Here are a few tips.

Restart the Application Service

Similar to the standard power cycle "turn it off; wait 30 seconds; turn it back on" advice you receive for a number of issues when dealing with hardware, occasionally a service issue can be resolved simply by restarting the Circulation Manager application server. For the Docker version of the Circulation Manager, log into the circ-webapp (circ-deploy in previous versions) container host and issue the following command to restart the uwsgi application:

sudo docker exec circ-webapp touch uwsgi.ini


Wait 20 seconds or so and retry accessing the web page where you experienced the error. If you still receive the error, a persistent issue is at fault.

Check the Application Log for Errors

Most problems producing a 500 response from the web server will also produce an error in the application log. You can review the log size by logging into the circ-webapp container host and issuing the following command:

sudo docker exec circ-webapp ls -l /var/log/uwsgi

If the log is less than 100MB or so in size, you can open the log file and search for errors.

Step-by-Step Guide

  1. Enter the container: sudo docker exec -it circ-webapp /bin/bash
  2. Open the log file for searching: vi /var/log/uwsgi/uwsgi.log
  3. Issue a command to search backwards from the top of the file for the ERROR string: :1?ERROR
  4. Most likely you will find the latest error condition; check the timestamp to see if it is current
  5. If the error is current, review the error text and begin diagnosing the issue
  6. You can continue searching backwards for the previous error by pressing n
  7. Post a message to the #devops channel on Slack if you get stumped and need help