Skip to content

Clarification: rationale for returning HTTP 500 for invalid HTTPBackendRef #4804

@ivanmatmati

Description

@ivanmatmati

Hi,

I have a question about the rationale for returning HTTP 500 when an HTTPBackendRef is invalid (e.g. due to a missing ReferenceGrant, leading to RefNotPermitted).

The spec states that:

When a HTTPBackendRef is invalid, 500 status codes MUST be returned…

However, in this scenario:

  • The client request is valid
  • The backend may be healthy
  • The failure is due to a routing/configuration constraint, not a runtime error

Using 500 could suggest an internal failure of the gateway, while 503 might suggest backend unavailability — neither seems to precisely reflect the situation.

Could you clarify:

  • What was the motivation for choosing 500 here?
  • Was this mainly for consistency across implementations?
  • Were alternative status codes considered?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions