flashman
← All posts

HTTP 207 Multi-Status debugging

Debug HTTP 207 Multi-Status responses by checking per-resource results, XML namespaces, status lines, redirects, retries, partial success, and client behavior.

2026-09-26 · 5 min read · Rahul Chitturi

  • http
  • webdav
  • debugging

A 207 Multi-Status response carries results for multiple resources or properties, most commonly in WebDAV. The outer 207 status says to inspect the response body; it does not mean every operation succeeded.

Generic HTTP wrappers often treat all 2xx responses as success and discard the individual status lines, causing partial failures to surface later as missing files, stale properties, or inconsistent synchronization.

Parse the multistatus document

Capture the request method, target, Depth header where relevant, response Content-Type, DAV namespace, each response href, status or propstat block, error details, and response description. Use an XML parser that preserves namespace identity.

  • Evaluate every resource result.
  • Resolve href values against the correct base URI.
  • Parse complete HTTP status lines inside XML.
  • Keep property failures distinct from resource failures.

Define partial-success behavior

Map each requested operation to its returned resource and decide which failures are terminal, retryable, ignorable, or require user action. Do not blindly replay successful mutations while retrying failed members.

For batch synchronization, persist stable operation identifiers and reconcile server state after ambiguous transport failures. Redirect handling within multistatus data may differ from ordinary top-level HTTP redirects.

Test mixed outcomes

Use Flashman's XML formatter for synthetic multistatus bodies, URL tool for href resolution, diff for response sets, and JSON formatter for an application's normalized result model.

Test all-success, all-failure, and mixed responses; propstat groups; namespaces and prefixes; relative and encoded hrefs; redirects; malformed status lines; duplicate resources; large batches; retries; authorization boundaries; and older clients.

Try these tools