Cloud Service >> Knowledgebase >> How To >> How to Fix HTTP Status Code: Error 406 (Not Acceptable)
submit query

Cut Hosting Costs! Submit Query Today!

How to Fix HTTP Status Code: Error 406 (Not Acceptable)

Encountering the HTTP status code 406 (Not Acceptable) can be a challenging and frustrating experience for both webmasters and users. This error occurs when a server cannot respond to the client’s request with content that meets the specifications of the client's browser. While it may seem complex, resolving this issue can be straightforward if approached methodically. 

Understanding and fixing this error is crucial for maintaining seamless user access, whether managing a personal website or an extensive cloud infrastructure.

What is HTTP Status Code: Error 406 (Not Acceptable)?

Servers issue HTTP status codes in response to requests made by clients, such as web browsers. The code 406 indicates that the requested resource exists, but the server cannot fulfil the request in the format required by the client’s browser. Essentially, the server finds the client's request "unacceptable" due to content negotiation issues, often stemming from mismatches in the request headers or character encoding.

The root cause lies in the client-side request headers—specifically the "Accept" headers. These headers inform the server about what content the client expects in return, such as specific media types (e.g., text/HTML, application/JSON) or character sets. If the server cannot deliver the requested content in an acceptable format, it returns a 406 error.

Common Causes of HTTP Error 406

There are several reasons why the HTTP 406 error may appear. Some of the most common causes include:

Incompatible Request Headers

Missing or Unsupported MIME Types

Outdated Web Scripts

Misconfigured Server Settings

How to Fix HTTP Status Code 406

Fixing an HTTP 406 error involves both server-side and client-side troubleshooting. Here are the steps you can take to resolve the issue:

1. Check Browser Settings

The first step in fixing the error is to inspect the client's browser settings. Browser extensions or plugins can often interfere with the proper functioning of request headers. Here’s what you can do:

Disable Extensions: Disable browser extensions or plugins that might alter the "Accept" headers, particularly ad-blockers or content filters. After disabling, reload the page and see if the issue persists.

Clear Cache: Sometimes, browser cache can store outdated settings, causing incorrect "Accept" headers to be sent. Clear the browser cache and try reaccessing the page.

Use Another Browser: To rule out browser-specific issues, try accessing the website from a different browser or in incognito mode to see if the problem persists.

2. Adjust Server Configuration

If the error is not due to browser issues, the next step is to address the server’s configuration. Servers like Apache and Nginx, handle content negotiation based on the request headers received. If the server does not have the necessary MIME types or configurations to handle the client's request, it will return a 406 error.

Update MIME Types: Check if the server supports the MIME types requested by the client. If not, modify the server configuration to include the required types. For example, in Apache, this can be done by adding the appropriate MIME type in the .htaccess file.
apache

AddType application/json .json

AddType text/html .html

Modify Content Negotiation Settings: In Apache, the mod_negotiation module manages content negotiation. You can adjust the module to offer default formats if no acceptable content is found, thus avoiding the 406 error.

Updating the MIME types in the configuration file (Nginx. conf) can similarly resolve the issue for Nginx servers.

3. Check Code Compatibility

Another common reason for HTTP 406 errors is outdated or incompatible code. For instance, older scripts or frameworks may not be fully compatible with modern browsers, leading to failed content negotiations.

Update Web Applications: Ensure the web application or content management system (CMS) is updated to the latest version. Updates often include patches for bugs that might affect compatibility with new browser technologies.

Test for Compatibility: Run tests to ensure the website code is compatible with modern browsers. You can use tools like the W3C Markup Validation Service to check if your website’s code complies with current web standards.

4. Server-Side Redirect

If none of the above methods work, implementing a server-side redirect can be a last resort. This involves redirecting the user to a different page or resource compatible with their browser’s request.

For example, in Apache, you can implement a redirect in your .htaccess file:

apache

Redirect 406 /default-page.html

This approach ensures that users are provided with an alternative version of the content that the server can deliver without returning an error.

Conclusion

The HTTP 406 error may initially seem daunting, but it can be resolved through systematic troubleshooting. From inspecting browser settings to adjusting server configurations, several ways exist to tackle this issue efficiently. When managing servers or cloud-hosted websites, addressing errors like 406 ensures uninterrupted user access and a seamless experience.

For those managing extensive cloud environments or web applications, having a reliable hosting partner is essential to help minimize errors and ensure high uptime. Cyfuture Cloud, a leading cloud hosting solutions provider, offers comprehensive services designed to optimise your website's performance and efficiently handle errors like HTTP 406. Get in touch with Cyfuture Cloud today for reliable, scalable, and secure hosting solutions tailored to your needs.

Cut Hosting Costs! Submit Query Today!

Grow With Us

Let’s talk about the future, and make it happen!