You may have come across the 406 Not Acceptable error while visiting a website or even on your own website. Basically, error code 406 is an HTTP response status code telling you that the server cannot provide a response matching the list of acceptable values that are defined in the request’s headers.
When a user sends a request to the server, it can specify the types of responses it can accept in the “Accept” header field. If the server cannot provide a response that matches the list of acceptable responses, it will return an error code 406.
This article will explain what 406 Not Acceptable is, the reasons you might be seeing it, how you can fix it, and what you can do to try and prevent it from happening again. The information shared here will be helpful to you if you are a user browsing a website and seeing it pop up, or if you are a website admin encountering this roadblock.

What Does 406 Not Acceptable Mean?
406 Not Acceptable is one of the more rare proxy error codes you may encounter. It often presents itself as a white screen with text that reads:
Not Acceptable. An appropriate representation of the requested resource could not be found on this server.
Sometimes, as with most other error codes, it will identify the request resource where the problem lies. This alteration reads:
An appropriate representation of the requested resource /example.php could not be found on this server.
This is not always the case as the appearance of 406 Not Acceptable will vary depending on the website, host, or browser. It may tell you exactly what caused it or it could simply just say “406 Not Acceptable” with no other additional information.
To easily understand what 406 Not Acceptable means, consider this. The website’s server sent your browser the wrong file format, one that it does not accept, or the website’s server violates some settings or security requirements. It will let you know that the file format you submitted is not part of the acceptable formats of the server. If you are lucky, the error page will tell you which formats it does accept but unfortunately, that is almost as rare as getting a 406 Not Acceptable error.
For example, a browser may send a request to a webpage and specify in the Accept header that it can only understand responses in a text/html or application/json format. If the server cannot provide a response in that format, it will return a 406 Not Acceptable message.
Error code 406 can also be generated by the mod_security module which is a type of firewall program that runs on Apache web servers and scans for violations of the rules it has set.

Why Am I Getting Error Code 406?
Each time you open a web page, your browser of choice will send a request to the page’s server to get the site’s content and database files. Your browser acts as the messenger between you and the server as it tells the server what you want to see and gives you the correct information.
During the first request, your browser tells the server all about the file formats that it can accept. This is called an Accept header request which prompts the server to deliver the files in the proper formats so it can produce the entire website or app, starting with the header.
Sometimes, the server will send a reply that is not in the suitable format or violates a rule set in place by the browser or client machine. As a response, the browser will present a 406 Not Acceptable error, letting you know that the server is not delivering the appropriate data.
Some examples of bad formats and rule violations that can come up with the header request include:
- Accept-range: Some servers have security measures set in place or only allow a specific file size range in the response. If the response tries to send too many bytes outside the acceptable range, you will see 406 Not Acceptable.
- Accept-encoding: This area of the header is meant to compress files so that they move quicker from the server to the browser. Some compression methods and formats are not accepted and lead to 406 Not Acceptable.
- Accept-charset: This refers to a character set limit or how site file tables take code and turn it into understandable characters. There are so many characters, languages, and symbols that it becomes a challenge for a website to cover them all. The standard table is called ISO-8859 but there are other tables as well. New character tables occasionally get released to keep up with the language and character additions but until then, any unrecognizable characters end up leading to 406.
- Accept-language: This is different from the charset aspect as its focus is on international languages rather than programming ones.
- MIME type violation: The browser will request a specific MIME type from the server. MIME types are content elements that include JPEG images, video formats, or simple text. If the server cannot provide a request MIME type, you will see 406 Not Acceptable.
Error Code 406 in Web Scraping
When it comes to web scraping, error code 406 is commonly encountered when Accept headers are not provided or misconfigured. Most HTTP clients do not add default Accept headers so you will need to set them manually. To verify what headers need, take a look at how the website reacts in your web browser by using Browser Developer Tools. By using the Network tab, you can see the exact Accept headers and replicate them in your scraper.
There is also a small possibility that 406 Not Acceptable is returned deliberately by the server to block scraping and deceive the scraper into thinking there is a technical issue. If that is the case, there are guides on fortifying scrapers against blocking caused by 406. You can alternatively use a mobile proxy tied to an antidetect browser to trick the server into not noticing your scraper.

How To Fix 406 Not Acceptable?
Before completing any of the steps mentioned below, make sure you have a backup of your application or website. There is always potential for causing further issues by going into your site’s source code so you will want to ensure you have a database and site file backup to restore it if necessary. In general, it is always helpful to actively backup your website or application frequently.
The solutions we are about to introduce are useful for both the client-side (when a user makes an error) and the server-side (when the issue lies with the website itself). While 4XX error codes tend to be client-side errors, that is not always the case.
Ensure the URL is Correct
The first step you should take is making sure the URL is valid. While this does tend to be the cause of an error code 404, it may be related to a 406. However, there might be something odd with the way your browser translates the request. Adding JSON or PHP to the end of your URLs can be misinterpreted as a request for those formats, even though the client does not need them.
In these cases, double-check the URL you used that produced this error. Type it in again or try using a different subdomain on the website to see if the issue lies on that one page that is not rendering.
Reset Devices and Networks
Most of the platforms that cannot satisfy an Accept headers request include gaming or media oriented systems or even some music marketplaces. If you log into a streaming platform to work a show and get a 406 error, the problem is more than likely client-side. It comes from a user’s device, network, or another device they used to launch the platform. Some of the most common platforms that experience error code 406 include Hulu, Google Play, Square Enix Games, Netflix, Xbox, and Windows (when it comes to gaming).
High-quality scraping and automation starts with high-quality mobile proxies
Media and gaming platforms have many restrictions which depend on your location or network configuration. You may encounter the error due to all the moving pieces. While an exact troubleshoot would be difficult to provide, here are some steps you can try to take to narrow in on the real issue:
- Check the status of the platform’s server. The issue could be with the server being down for maintenance or an internal problem.
- Restart your device, gaming system, or other machine that you are using.
- Disconnect all devices from their cables, wait a few minutes, and reconnect them.
- Check for any software updates.
- Restart your network from the router.
- Switch to a wireless or wired network to see if the issue is network based.
Rollback Recent CMS Changes
If you are a website admin, you may need to explore the system used for your websites or applications. If you use WordPress as your content management system, it could be the cause of the 406 Not Acceptable error because of a complication with something inside your site files.
Regardless of which CMS you are using, you should look into when your last update happened. Specifically plugins, themes, or manually adjusted code could produce situations where the site files violent client or server requests. You would either need to update your CMS to the latest version or check in with the plugin, theme, or code to see if the update affected them.
Uninstall and Reinstall Plugins, Themes, and Extensions
WordPress plugins and themes add extra code to your site files that interact with the main WordPress files. While reputable plugins do not typically cause problems, an occasional conflict can occur, especially if WordPress releases an update that the plugin is not prepared for.
As with almost every other error code troubleshooting, deactivating plugins and themes one by one could help figure out the cause of your issue. You can disable them one at a time and check to see if error code 406 vanishes. If it does, remove that plugin and keep going through the list to determine if that one alone is the cause of the issue.
Analyze the Status of your Database
Removing a plugin could still have some effects on your WordPress database since plugins get full access to the database to work well. You should still check the status of your database even if it seems that removing the plugin makes the 406 error go away. This reduces the chance of seeing any further issues in the future.
If you find that the plugin or theme was not the cause of 406 Not Acceptable, you should still check your database for the primary source of the error. Sometimes a database change can become the primary reason for 406 Not Acceptable.
Analyze Server Logs
If you are not using a CMS to run your website or you know that the error has no connection to your CMS or client machine, your next bet is to analyze your server logs. The server logs store information about the health and status of the server or hardware used to run the web application. This will help you determine where and when the user experienced 406 Not Acceptable which in turn will help you narrow down what caused it to happen.
Clear Browser Cache and Cookies
Sometimes, certain browser cookie files can cause performance issues and make your browser display error messages. Clearing your browser cache and cookies and reloading the request web page can get rid of the error code popping up.
Reconfigure Accept Headers
Misconfigured accept headers in the HTTP request cause a 406 Not Acceptable error. THis happens when the client’s request specifies it can only accept data in specific formats but the server is unable to provide data in any of these formats. You can diagnose and correct the issue with these steps:
- Check the client request: Start by examining the HTTP request that caused the error. Look at the Accept header in the request and see what formats it is specifying. You can check this with Postman or cURL to manually send requests and inspect the headers.
- Examine the server response: Check the server response and see what formats it is capable of providing. You can find this information in the Content-Type header of the response.
- Adjust server configuration: If the server is misconfigured to provide data in a format that clients cannot accept, you will need to adjust the server’s settings. This involves modifying your server’s .htaccess file, changing content negotiation settings, or updating your server’s MIME type mappings.
- Edit client request headers: If the problem exists in your client’s request, you will need to adjust the Accept headers in the request to include formats the server can provide. If 406 Not Acceptable is coming up for regular users, this could indicate an issue with the code of your website that needs to be fixed.
- Regular monitoring: Constantly keep an eye on your server logs by using tools like Google Search Console to check for errors. This can help you catch and solve issues before they cause major ramifications.

Preventing Error Code 406
While the fixes for 406 Not Acceptable are simple and getting the error is rare, there are steps you can take to prevent it from happening in the first place.
- Only install necessary plugins, themes, and extensions. Make sure they come from a reputable source and try to keep them to a minimum unless they are of the utmost urgency for your website’s functionality.
- Do not modify the core WordPress files unless you must make a change and you know exactly what you are doing.
- Run a database cleaner and site optimizer regularly.
- Constantly debug your server and web application.
- Set automated backups of your website or application. This keeps you aware of any code conflicts or errors that might arise and allows you to restore previous versions of a website if and when an error happens.
- Run a manual backup of your website before you plan on updating WordPress and any plugins, even if automated backups are set in place. It is recommended to run backups before editing any files or adding new code to your site.
Conclusion
406 Not Acceptable is an error between a user and a server. It comes up when the server cannot deliver a response that matches the acceptable formats, languages, encodings, or characters defined in the Accept header. While it is less common than other error codes, it can affect both users and website administrators.
Key Takeaways:
- 406 Not Acceptable happens when the server is unable to provide a response that matches the formats specified in the Accept headers such as MIME type, language, encoding, or charset.
- Despite being classified as a 4XX error, it is not purely a client-side issue. Misconfigured servers, CMS conflicts, firewall rules, or improper headers can all generate 406 Not Acceptable.
- Misconfigured or overly restrictive Accept, Accep-Language, Accept-Chatset, or Accept-Encoding headers are common causes of the error code. Proper alignment between request headers and server capabilities is necessary to prevent the error.
- Web scrapers that fail to replicate browser headers accurately can trigger the error. It is recommended to review browser network requests and configure the headers correctly before starting a scraping project.
- Limiting unnecessary plugins, keeping systems updated, actively monitoring server logs, verifying header configurations, and maintaining regular backups can reduce the risk of encountering 406 Not Acceptable.
For users, 406 Not Acceptable will often appear as a temporary disruption caused by browser settings, cached data, network configurations, or platform-specific restrictions. For website admins, it can point to deeper issues such as misconfigured headers, plugin errors, database inconsistencies, server rule enforcements, or security modules like the firewall mod_security.
Despite all this, 405 Not Acceptable is manageable with a structured troubleshooting approach. By reviewing request headers, examining server responses, checking logs, maintaining clean CMS environments, and performing regular backups, you can resolve any issues that come up and reduce the likelihood of encountering 406 Not Acceptable again.
Frequently Asked Questions
How do I configure my server to avoid 406?
You can configure your server to avoid error code 406 by making sure it can produce the content type requested by the user or client and that security modules are not blocking any requests.
What is the difference between 400 and 406?
The main difference between error code 400 (Bad Request) and error code 406 (Not Acceptable( is that with code 400, the server could not understand the request due to a syntax error or malformed message while with code 406, the server understand the request but cannot provide a response in the format the client requested.
How does content negotiation relate to 406?
Content negotiation is a mechanism where the client sends headers telling the server what formats it can handle. A mismatch in the content negotiation is what causes error code 406.



