208 Already Reported

When a resource has already been listed earlier in the same 207 response, the server marks the duplicate entry with 208 Already Reported. This prevents redundant data and infinite loops caused by resources with multiple bindings.

Usage

When a client receives 208 Already Reported inside a 207 multi-status body, the resource was already described earlier in the same response. No additional details are provided for the duplicate entry.

This status code exists specifically for WebDAV Binding Extensions. A resource bound to multiple locations within the same collection appears once in full and once as 208 Already Reported, breaking potential recursion when a Depth: infinity request encounters a resource referencing itself.

WebDAV Only

The 208 Already Reported status code appears exclusively inside 207 multi-status response bodies. A server never sends 208 as a top-level HTTP response status.

Example

The client sends a PROPFIND request with Depth: infinity to enumerate the /main/ collection. The /main/dependent resource is bound to the same underlying resource as /main/ itself.

The server returns the full details for /main/ first, then returns 208 Already Reported for /main/dependent to break the recursive loop.

Request

PROPFIND /main/ HTTP/1.1
Host: www.example.re
Depth: infinity
DAV: bind
Content-Type: application/xml; charset="utf-8"
Content-Length: 139

<?xml version="1.0" encoding="utf-8" ?>
<d:propfind xmlns:d="DAV:">
  <d:prop>
    <d:name/>
    <d:link/>
  </d:prop>
</d:propfind>

Response

HTTP/1.1 207 Multi-Status
Content-Type: application/xml; charset="utf-8"
Content-Length: 568

<?xml version="1.0" encoding="utf-8" ?>
<d:multistatus xmlns:d="DAV:">
  <d:response>
    <d:href>http://example.re/main/</d:href>
    <d:propstat>
      <d:prop>
        <d:name>Main Resource</d:name>
        <d:resource-id>
          <href>urn:uuid:1234-0000</href>
        </d:resource-id>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>
      http://example.re/main/dependent
    </d:href>
    <d:propstat>
      <d:prop>
        <d:name>Main Resource</d:name>
        <d:resource-id>
          <href>urn:uuid:1234-0000</href>
        </d:resource-id>
      </d:prop>
      <d:status>
        HTTP/1.1 208 Already Reported
      </d:status>
    </d:propstat>
  </d:response>
</d:multistatus>

Code references

.NET

HttpStatusCode.AlreadyReported

Rust

http::StatusCode::ALREADY_REPORTED

Rails

:already_reported

Go

http.StatusAlreadyReported

Symfony

Response::HTTP_ALREADY_REPORTED

Python3.5+

http.HTTPStatus.ALREADY_REPORTED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_ALREADY_REPORTED

Angular

@angular/common/http/HttpStatusCode.AlreadyReported

See also

Last updated: April 4, 2026