HTTP status codes provide in­for­ma­tion about whether an online request was suc­cess­ful, and if not, what the error is. But the error messages aren’t always clear. This is es­pe­cial­ly the case for the “500 Internal Server Error.” This message indicates that an error has occurred during con­nec­tion to the server and that the requested page cannot be accessed. However, it won’t tell you exactly why this is the case. For­tu­nate­ly, there are different methods for finding the cause. We point out typical error sources and give tips on what to do if you encounter the HTTP error 500.

$1 Domain Names – Grab your favorite one
  • Simple reg­is­tra­tion
  • Premium TLDs at great prices
  • 24/7 personal con­sul­tant included
  • Free privacy pro­tec­tion for eligible domains

What does the internal server error mean?

Using status codes, the web server tells an internet user’s browser (client) whether a request (i.e. accessing a website) was suc­cess­ful or not. If the browser receives the 200 status code, it knows that every­thing went well. However, the user never sees this message since the requested content appears instead. The situation is different with the 400 and 500 status codes. While the former indicate client errors, the latter are server-related. The Internal Server Error 500 is a col­lec­tive status code for server errors. Therefore, at first glance, it is not possible to determine where the error actually lies. The user only knows that the server has reported an un­ex­pect­ed error.

However, if the server has installed Microsoft Internet In­for­ma­tion Services (Microsoft IIS), the error code will be specified. Decimal places indicate the cause of the error in more detail:

  • 500.0: Module or ISAPI error occurred.
  • 500.11: Ap­pli­ca­tion is shutting down on the web server.
  • 500.12: Ap­pli­ca­tion is busy restart­ing on the web server.
  • 500.13: Web server is too busy.
  • 500.15: Direct requests for global.asax are not allowed.
  • 500.19: Con­fig­u­ra­tion data is invalid.
  • 500.21: Module not rec­og­nized.
  • 500.22: An ASP.NET http­Mod­ules con­fig­u­ra­tion does not apply in Managed Pipeline mode.
  • 500.23: An ASP.NET httpHan­dlers con­fig­u­ra­tion does not apply in Managed Pipeline mode.
  • 500.24: An ASP.NET im­per­son­ation con­fig­u­ra­tion does not apply in Managed Pipeline mode.
  • 500.50: A rewrite error occurred during RQ_BEGIN_REQUEST no­ti­fi­ca­tion handling. A con­fig­u­ra­tion or inbound rule execution error occurred.
  • 500.51: A rewrite error occurred during GL_PRE_BEGIN_REQUEST no­ti­fi­ca­tion handling. A global con­fig­u­ra­tion or global rule execution error occurred.
  • 500.52: A rewrite error occurred during RQ_SEND_RESPONSE no­ti­fi­ca­tion handling. An outbound rule execution occurred.
  • 500.53: A rewrite error occurred during RQ_RELEASE_REQUEST_STATE no­ti­fi­ca­tion handling. An outbound rule execution error occurred. The rule is con­fig­ured to be executed before the output user cache gets updated.
  • 500.100: Internal ASP error.

What are the causes of error 500?

The “Internal Server Error” can occur when the request is processed by the web server. The col­lec­tive status code includes every­thing unplanned that can happen on the server and prevent the website from being loaded. The server error 500 probably happens because an error has occurred in the con­fig­u­ra­tion of the web server. Here is a selection of typical error sources:

  • Per­mis­sion error: The per­mis­sions of the main files and folders are not set correctly.
  • PHP timeout: The script tries to access an external resource and ex­pe­ri­ences a timeout.
  • Incorrect code in .htaccess: The structure in a .htaccess file could be wrong.
  • Error in syntax or code in CGI/Perl scripts: In some cases, scripts are incorrect. Paths, es­pe­cial­ly, can be mis­aligned.
  • PHP memory limit: A process exceeds memory and therefore cannot be executed correctly.

In the case of WordPress sites or other content man­age­ment systems, in­stalling a faulty or in­com­pat­i­ble extension can also be the cause. Plugins and themes – es­pe­cial­ly from third-party providers – can affect the entire website.

How can website operators fix the 500 Internal Server Error?

Are your website visitors only seeing the 500 server error? As an operator, you should tackle the problem quickly because not only will this scare off your visitors, but it could also mean that Google will lower your ranking. Before you take action, first check whether your server is still running. If not, contact your hosting provider as soon as possible.

If there is an internal error, the first step is to view the log files. For Linux servers, the col­lec­tion of error messages should be found at /var/log/httpd/error_log. It makes sense to reload the website to reproduce the HTTP error 500 code and observe how the log file is being created. This will help you find the source of the error quite quickly. Also consider which changes were made shortly before. In many cases, in­cor­rect­ly pro­grammed or in­com­pat­i­ble plugins are the cause of error messages.

Errors can also occur if you have not set per­mis­sions correctly for important files. In general, there are three types of rights:

  • Read (r)
  • Write (w)
  • Execute (x)

These per­mis­sions can be assigned for three different user types:

  • Owner of the file
  • Group of users
  • All others

The rights are specified either in the ab­bre­vi­a­tions r, w, and x, or in cor­re­spond­ing numerical values: 4 for read, 2 for write, and 1 for execute. They are added for each user type and specified one after the other: rwxr-xr-x (rwx for the owner, r-x for the group, and r-x for all others) or 755. This con­fig­u­ra­tion (755) should be the default setting. If the per­mis­sion as­sign­ment is set dif­fer­ent­ly, an error may occur. You can change this with a command:

chmod 755 filename

If this change does not solve the problem, you can also release all rights for each group for test purposes:

chmod 777 filename

But only use this setting to locate the problem. Any user is allowed to rewrite the file, which is un­der­stand­ably a security risk.

Next, check (if dis­trib­ut­ing the rights didn’t produce the error message) if your scripts are running correctly. Sometimes errors occur because the script files have been moved, renamed, or deleted. Also check the .htaccess file: even a syntax error – no matter how small – can cause an internal server error. An equally common error is in­cor­rect­ly for­mat­ting the .htaccess file. This must be created in ASCII or ANSI format, not in Unicode. Therefore, write the file in a text editor such as Notepad, Notepad++, or Sublime Text, and not in a word pro­cess­ing program such as Microsoft Word. To test whether the file is re­spon­si­ble for the error, you can tem­porar­i­ly rename it and reload the website. The server now won’t access .htaccess when loading the website. If you no longer receive the error message, you can repair the file or create a new one.

A timeout can also lead to an error message. In this case, it isn’t a web server error, but rather an in­ter­rupt­ed con­nec­tion to an external source. Are PHP scripts on your website set to access resources from other servers? Perhaps the resource is no longer available or server com­mu­ni­ca­tion is down for some other reason. One way to eliminate this source of error is of course to not make your site dependent on external resources. If this is not possible, you can increase the time limit of your script. It also makes sense to implement efficient error handling so that errors in the PHP script can be detected more ac­cu­rate­ly.

Could it be that the memory is over­loaded? The memory limit de­ter­mines how much memory a process may use. If more RAM is needed than is available, this could result in an internal server error. You can increase the limit as a temporary solution. To do this, add a command like this to php.ini:

memory_limit = 512M

In this example, you would set the memory provided to 512MB. Note, however, that your hosting provider will only allow you a certain PHP script limit within the package that you’ve booked. If you enter a higher value, the web server will ignore it. Raising the limit is only a temporary solution: once your site is up and running again, you should look for the reason for the high RAM usage. There is a high prob­a­bil­i­ty that the error can be found in the code of your website.

If none of these methods offer you a solution, it is a good idea to contact your hosting provider. Before doing so, you can check the status of the servers: many hosting service providers will report the status of their servers via a status page or inform users via social media if a problem has occurred.

Tip

IONOS also has a status page where the hosting service’s customers are informed about current problems.

How should internet users respond to an HTTP error 500?

As a website visitor, there is little you can do if you encounter an internal server error. The web server on which the target website is located has an incorrect con­fig­u­ra­tion. This means that there is no error in your PC settings or the network con­nec­tion settings. Therefore, the easiest solution for you as an internet user is usually to reload the page again later. On the one hand, it is possible that the webmaster has already corrected the error. This is very likely, es­pe­cial­ly with large providers. On the other hand, it could be that you’re trying to access the website at an in­con­ve­nient time for the web server. If you’ve chosen the exact moment that the service is rebooting, the error message will be displayed even though every­thing is going to plan.

Note

If you are con­front­ed with the error message when ordering online, you must not reload the webpage, since you can’t see where the error occurred. It could be that the con­fir­ma­tion page failed to load, but the system has already accepted your order. Re­fresh­ing the page could therefore lead to a duplicate order.

It is also possible that an extreme increase in page views has brought the server down all of a sudden. This problem is usually solved within a few seconds – unless the website is per­ma­nent­ly over­loaded. If you still receive the error message after re­fresh­ing the page, you should first clear your browser’s cache. The browser may not actually reload the website, but use its internal memory instead. After emptying the cache, try again to access the website.

If the “500 Internal Server Error” is still being displayed, you simply have no other choice, but to wait for the website operator to solve the problem. There is, however, a little trick you can use in order to access the contents of the website. If you are not dependent on the latest state of the (func­tion­ing) page, you can access the Google cache. If you enter the command cache: followed by the relevant URL in the Google search bar, you can access an earlier – hopefully still working – version of the website. However, you won’t really be surfing the page, you will only be nav­i­gat­ing within the copy on the Google server.

If you have to go back even further in the past, it may be worth taking a look at the Wayback Machine. There you can sometimes find older versions of websites that are even decades old.

If the website you want to visit is not ac­ces­si­ble for a longer time, you can of course contact the webmaster. They may not even know that visitors are unable to access their site, which is why they will be grateful to be told.

Go to Main Menu