Skip to content

r3dr_v2: HEAD /r3dr/v2/r/{slug} returns 405, not 302 #1433

Description

@aaylward

Problem

i.iili.uk Caddy forwards GET and HEAD /r/{slug} to r3dr_v2 (rewrite → /r3dr/v2/r/{slug}). The model only registers @http(method: "GET", …). smithy-cpp's router does exact method-bucket dispatch with no HEAD→GET fallback, so:

curl -I https://i.iili.uk/r/<slug>
# → 405 Method Not Allowed, Allow: GET
# no Location

Unfurlers and probes that lead with HEAD never see the redirect. Surfaced on #1432.

Expected

HEAD should get the same status and Location as GET (body empty), matching common redirect/unfurl behavior.

Options

  1. Register HEAD on the Redirect operation (or router HEAD→GET for redirect routes).
  2. Caddy-side map HEAD→GET before proxy (workaround; prefer fixing the service).

A Send("HEAD", …) wire/contract test should pin the 302 + Location once fixed.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions