300 Multiple Choices

HTTP Status CodesRedirection (3xx)rarerStatus Code: 300Last updated: todayTested on:Google ChromeNode.js v20 LTSJune 2026

The request has more than one possible response, and the user agent should select one.

300 Multiple Choices Quick Fix⏱️ Est. Fix Time: 3 minutes

Usually happens because:

  • Requesting a resource that has
  • Content negotiation workflows returning optional

🔍 Quick Checklist:

Meaning

The HTTP 300 Multiple Choices redirection status code indicates that the request has more than one possible response. The user agent or user should choose one of them. Since there is no standardized way of choosing one of the responses, this status code is very rarely used.

Root Causes

  • Requesting a resource that has multiple format variations (e.g. video files in different formats/resolutions).
  • Content negotiation workflows returning optional links lists.
CauseFrequency
Requesting a resource that has⭐⭐⭐⭐⭐
Content negotiation workflows returning optional⭐⭐⭐⭐

Common Mistakes

  • Returning HTTP 300 without providing choice URLs in the body, leaving the client stuck.
  • Using 300 instead of standard 302/307 redirects when a default choice exists.

How to Fix

1Provide a list of link choices in the response body payload (e.g. HTML or JSON links representation).
2Allow clients to select format criteria using HTTP Accept headers instead.

Framework-Specific Examples

Returning 300 status code with choice payload links in Express.

Express Example
app.get('/video', (req, res) => {
  res.status(300).json({
    choices: ['/video.mp4', '/video.webm']
  });
});

Server Configuration Examples

Nginx custom maps returning status 300.

Nginx Config
# Nginx returns 300 for non-negotiated paths

Prevention

  • Prefer content negotiation headers (e.g. Accept, Accept-Language) over 300 redirection loops.
  • Format choice bodies clearly in JSON or XML for automated parser processing.

Frequently Asked Questions (FAQ)

Q: Why is 300 Multiple Choices rarely used?

Because there is no standard format for the response body, browsers cannot pick a choice automatically, forcing users to click link options manually.

Q: Can 300 responses be cached?

Yes. 300 Multiple Choices responses are cacheable by default unless specified by cache-control headers.

Q: What is the correct fallback if a browser cannot choose?

The server should designate a default resource choice in the 'Location' header of the 300 response.

Q: Does 300 affect SEO?

Yes. Search engine bots cannot choose between choices, which splits link ranking equity. Use 301 Moved Permanently instead.

Still having this problem?

Didn't solve your problem?

SuggestRequest Error