Other 4xx codes
All HTTP status codes in ASP.NET Core
4xx Client error
The resource existed but was removed permanently, and no forwarding address is known.
In ASP.NET Core: Useful for retired API versions or deleted content, where 404 would be less informative.
The StatusCodes constant, HttpStatusCode enum name, reason phrase, class, and how EnsureSuccessStatusCode() and the standard resilience handler treat 410.
| Constant | StatusCodes.Status410Gone |
|---|---|
| HttpStatusCode | HttpStatusCode.Gone |
| Reason phrase | Kestrel sends Gone |
| Class | 4xx, client error |
| IsSuccessStatusCode | false |
| EnsureSuccessStatusCode() | throws HttpRequestException: Response status code does not indicate success: 410 (Gone). |
| Standard resilience handler | does not retry it |
Results.StatusCode(StatusCodes.Status410Gone)
Results.Problem(statusCode: StatusCodes.Status410Gone, detail: "...")StatusCode(StatusCodes.Status410Gone)
Problem(statusCode: StatusCodes.Status410Gone, detail: "...")What Results.Problem(statusCode: 410) sends (with AddProblemDetails()), as application/problem+json:
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.11",
"title": "Gone",
"status": 410,
"traceId": "0HNA1B2C3D4E5:00000001"
}A controller's Problem(statusCode: 410) sends the same body.
A bare StatusCode(410) in an [ApiController] also gets a ProblemDetails body automatically; Results.StatusCode(410) in a minimal API sends an empty body unless you add UseStatusCodePages().
Every response on this page was recorded from ASP.NET Core 10.0.12 on Kestrel in the Production environment; the HttpClient rows come from .NET 10.0.12 and Microsoft.Extensions.Http.Resilience 10.10.0.
All HTTP status codes in ASP.NET Core