Did you ever encounter the error message “error 406 not acceptable” when you had to load a site or access a web application? In that case, you are far not alone. It is a status code of this sort of HTTP which leaves programmers and users at a loss.
We are going to break down what is 406 not acceptable means, explain why it occurs, and give you step-by-step instruction on how to rectify it in a hurry, whether you are a casual user facing this problem or worse have a site which you own and need to get rid of the 406 http code quickly, or finally as a developer seeking to do away with this irritating 406 http code forever.
Let’s begin at the beginning: What does 406 not acceptable mean?
The 406 response code is a member of the HTTP status code family, and quite literally means that the server has not been able to send information back to you in response to your request in a format with which you will be content (most likely your browser).
Technically, status 406 response messages is initiated in case, the server comprehends the request, but cannot supply it due to the content negotiation. This is normally in relation to the Accept (Accept-Language, Accept-Encoding or Accept-Type) headers which are provided by your browser or an application.
In other words: You are requesting to have something, but the server neither understands you nor knows how to give you what you require.
There are a few common scenarios that can trigger a 406 not acceptable error:
Your browser or API client gets a response with certain demands (e.g. “I only accept JSON or XML”), but the server is not able to meet them.
Sometimes a misconfigured web server or security rule (like in mod_security on Apache) rejects your request based on the content type or language preference.
Improper rewrite rules on platforms like Nginx or .htaccess can accidentally trigger a 406 code.
Some browser plugins or proxies modify headers in ways that confuse the server.
If you’re just browsing the web, and you see for the first time the 406 not acceptable error, then this indicates the website is failing to deliver the content it supposes you want.
This does not necessarily mean that something is wrong with your device – it is just that there is something about your request that does not match with what is returning to the server.
Thus, if you are curious about “what does http 406 mean?” or “what is 406 not acceptable?”, it is just important to understand it is a server-side problem and yes this problem can at times be rectified by the user.
Assuming you are making a request with cURL, Postman or code, make sure to check your Accept header. Don t ask it something the server is not able to provide it with.
Accept: application/json
Accept: */*
This tells the server: “I’ll take anything you’ve got!”
If you’re using Apache, mod_security might be your culprit.
SecFilterEngine Off
SecFilterScanPOST Off
Don’t forget to turn it back on after testing.
Are you using Cloudflare, Sucuri, or a similar service?
Check your rewrite rules in case you use .htaccess or NGINX config files. One or more of your URLs may be rewritten improperly, and hence the 406 HTTP code status.
Sometimes the issue is just browser-specific. Try using another browser or even incognito mode. If it works there, it might be an extension or plugin causing problems.
Code | Meaning | Why It Happens |
---|---|---|
400 | Bad Request | Syntax issue in request |
403 | Forbidden | Not allowed to access |
404 | Not Found | URL doesn’t exist |
406 | Not Acceptable | Server can’t deliver acceptable format |
500 | Internal Server Error | Problem on the server itself |
So yeah—406 not acceptable error is specific to content negotiation.
Imagine you have a REST API that is solely delivering application/JSON, and a client is requesting by using text/html. The server will fail to respond with an http 406 error unless the server is set to default to JSON or not graciously accept text/html.
Fix: Add fallback handler or persuade your server to give a JSON response back at all times.
In the world of modern APIs, especially RESTful ones, understanding the 406 meaning code is crucial. It can be used to guarantee ease of content negotiation between the clients and servers.
Use the http status code 406 to tell clients that they’re asking for something the server can’t give—not that the resource is missing or broken, but it’s just not acceptable in the current format.
Feature | Description |
---|---|
Code | 406 |
Type | Client-side request issue |
Nickname | Not Acceptable |
Main Cause | Unmatched Accept headers |
Common Fixes | Adjust headers, update server rules, disable extensions |
Discover how Rapid URL Indexer helps roofers rank for “near me” searches—fast.
Read Full Case →Discover which SEO click tool delivers better ranking results, pricing, and ROI.
Read Full Comparison →Explore India’s best SEO partners trusted by 100+ global brands for results that scale.
Read Full List →The not acceptable error 406 can appear to be very frightening until you understand what does 406 not acceptable mean, then matters are a lot easier. The easiest solution will depend on whether you are an average user, or a backend developer: the first time is to identify where and when the mismatch occurs, and then to modify the browser of your choice or some of the headers, or your server setup.
In case you see the 406 not acceptable messages again, then just relax! Now you are armed with the knowledge (and the tools) of how to crush that 406 http code like a pro.
Having trouble with correcting the errors in the websites, or creating an easy-going site with proper scaffolding?
Get in contact with Webdesign Discovery today!
Keep browser tools like DevTools or Postman handy to inspect headers. For developers, always log client requests and test for edge cases in content negotiation.
Share this guide with a developer or website owner who needs a fast fix!