Skip to content

HTTP status codesUpdated 2 Nov 2026

406 Error Code: Not Acceptable Explained Simply

Quick answer A 406 means the server has the page but cannot send it in a format your browser or app asked for. Update the browser, retry, or fix the request headers.

HTTP status406
Impact
Low impact
Typical fix time
Minutes
Who fixes it
You or the developer

The 406 error code, Not Acceptable, shows up when your browser or app tells the server which formats, languages or encodings it can handle, and the server has nothing that matches the list. The page may be fine. The two sides simply cannot agree on how to deliver it.

Visitors usually see it in rare cases, such as an old browser, a script blocker or a security filter that reads the request wrongly. Developers hit it much more in API work, where a call names one reply type such as JSON and the server can only give another. The sections below handle both groups in order of ease.

Common causes

  • 1Request asks for a format the server lacks

    How to tellAPI call returns 406 and the Accept header lists one type only

    What fixes itChange the Accept header to a type the server provides

  • 2Security filter blocks the request

    How to tellPlain page works elsewhere but fails on one site's form or search

    What fixes itRetry with simple text; owner reviews the firewall rule

  • 3Very old or unusual browser

    How to tellWorks in another browser or on another phone

    What fixes itUpdate the browser or use a current one

  • 4Add on changes request headers

    How to tellPage opens in a private tab without add ons

    What fixes itTurn off the add on for that site

  • 5Language or encoding not supported

    How to tellAppears after changing the browser language settings

    What fixes itReset the browser's language list to default

  • 6App or script sending wrong headers

    How to tellApp or tool fails; the same site opens in a browser

    What fixes itFix the app version or the headers in your code

How to fix it, step by step

  1. Reload and try once more

    Pressing F5 costs nothing. If a filter misread one request, a fresh request often passes.

  2. Load the page in an incognito tab

    This starts without add ons and stored settings. If the page loads, one of them was altering what the browser sent.

  3. Try a different browser or phone

    If a second browser opens the page, the first has an old version or odd setting. If none opens it, the site's setup is probably at fault.

  4. Install pending updates

    On a phone use its store, and on a computer the browser's About page, to fetch the latest build, then test again.

  5. Reset the language setting

    In the browser's language settings, keep your main language at the top and remove unusual extras. Then reload the page.

  6. Simplify what you type in a form

    Some firewalls block requests that contain symbols, code like text or very long strings. Retry with plain words and no special characters, particularly in search boxes and comment forms.

  7. Tell the site owner

    Send the page link, the time and what you did. If it comes from an app, include the app version.

What the 406 error code means

When a client asks for something, it can send headers such as Accept, Accept-Language and Accept-Encoding. These are like a shopping list of what the client can use. A server practising content negotiation compares the list against what it can offer. A 406 means the lists did not meet at any point, and the server decided not to send a different kind of reply anyway.

A developer calls an endpoint asking only for an XML reply, but the service answers with JSON only. The response is 406 Not Acceptable. Adding JSON to the Accept header fixes it.

406 compared with 415 and 400

Format related request errors
CodeWho is the problem aboutExample
406The format you want backAccept header lists a type the server lacks
415The format you sentUploading a body type the server rejects
400The request is unreadableBroken syntax
405The method you usedUsing POST where only GET works

See 415 Unsupported Media Type, 400 Bad Request and 405 Method Not Allowed.

How to fix HTTP 406 error code in an API

  • Look at the Accept header you send and compare it with the types the API documents.
  • Remove a too narrow value, or use the generic wildcard if the service allows any type.
  • Check Accept-Language and Accept-Encoding as well.
  • Test the same call in a plain tool and compare the headers sent.
  • On your own server, make sure a default format exists, so clients with no match still get a reply.

When a firewall causes the 406

On many shared hosts, a security module checks each request against a set of rules. A request that looks like an attack, even if it is only a long comment with quotes, may be rejected with a 406. The page content is not the cause. The owner can check the firewall log for the rule number and whitelist the false match. Visitors can only simplify the text and try again, and the broader steps for web faults are in apps and websites not working.

If a device label shows a code like 406,10025 in a robot or smart gadget's app, that is that product's own number, not this web code. Check its manual or maker's support.

Frequently asked questions

What does error code 406 mean?

It means the server cannot provide a response in any of the formats, languages or encodings the client says it accepts.

How do I fix a 406 error in my browser?

Reload, try a private window, update or switch the browser, reset language settings and simplify what you typed in a form.

Is the 406 error code my fault?

Sometimes. Old software or an add on can cause it. Often the cause is a server rule or a mismatch in an API call that only the developer can fix.

What is the difference between 406 and 415?

A 406 is about the format you asked to receive. A 415 is about the format of the data you sent.

Does a 406 error code mean the page is missing?

No. A missing page gives 404. In a 406 the page may exist, but it cannot be delivered in an acceptable form.