Skip to content

HTTP status code · Success (2xx)

208 Already Reported

208 Already Reported is used inside a WebDAV 207 Multi-Status body to say a collection's members were already listed earlier in the same response, reached through another binding. It keeps a PROPFIND with Depth: infinity from listing the same folder twice or looping forever.

Facts about this status code
Class2xx, Success
Defined inRFC 5842 §7.1
Cacheable by defaultOnly with explicit Cache-Control or Expires
Safe to retryNot applicable; it only appears inside a 207 body
Relevant headers
  • DAV: request header; the client must signal bind support before a server uses 208

What 208 means

RFC 5842 (an Experimental RFC) adds bindings to WebDAV, which let one collection appear at several paths, much like hard links. Section 7.1 says that when a Depth: infinity request reaches the same collection again, only the first binding is reported with 200; later ones get 208 and their descendants are skipped.

Servers SHOULD NOT use 208 unless the client announced support through the DAV request header. For older clients a server that finds a binding loop returns 508 Loop Detected instead.

How to send 208

Never send 208 as the top-level status; it only makes sense inside a 207 Multi-Status body.

Express (Node.js)
// Fragment of a 207 body for a bind-aware client (DAV: bind)
const multistatus = `<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/Coll/</D:href>
    <D:propstat><D:prop><D:displayname>Coll</D:displayname></D:prop>
      <D:status>HTTP/1.1 200 OK</D:status></D:propstat>
  </D:response>
  <D:response>
    <D:href>/Coll/Bar/</D:href>
    <D:propstat><D:prop><D:displayname>Bar</D:displayname></D:prop>
      <D:status>HTTP/1.1 208 Already Reported</D:status></D:propstat>
  </D:response>
</D:multistatus>`;
res.status(207).type('application/xml').send(multistatus);

Commonly confused with

208 vs 207
207 is the top-level response code; 208 is one of the per-item codes that can appear inside its body.
208 vs 508
508 Loop Detected aborts the operation when a binding loop is found; 208 lets it continue by skipping the repeated collection.

Frequently asked questions

Will I ever see 208 in a browser?
Almost certainly not. It is used only by WebDAV servers that implement RFC 5842 bindings, inside 207 responses to bind-aware clients.
When may a server use 208?
Only for Depth: infinity requests from clients that sent the DAV request header signaling bind support. Otherwise the server should return 508 Loop Detected on a loop.
Is 208 Already Reported a standard code?
It is registered with IANA, but its defining document, RFC 5842, is an Experimental RFC rather than a Standards Track one.

Last reviewed by Arielton Oberek.