diff --git a/work/projects/cpm-m3-telemetry-privacy-triage.md b/work/projects/cpm-m3-telemetry-privacy-triage.md index 030ee2d6..4701220f 100644 --- a/work/projects/cpm-m3-telemetry-privacy-triage.md +++ b/work/projects/cpm-m3-telemetry-privacy-triage.md @@ -70,7 +70,16 @@ Example: `view@-60,died_crash@-42,error_background_failed_to_load@-41`. | `reload_phase` | `unload`, `load`, `lightweight_load`, `full_load`, `fallback_load` | | `reload_error` | `already_loaded`, `not_loaded`, `base_url_in_use`, `no_background_content`, `background_failed_to_load`, `unknown`, `other` | -These are allowlisted enums; this pixel does not send raw error domains, codes or messages. +The four fields above are allowlisted enums. The pixel also sends standard error parameters: + +| Parameter | Values | +|---|---| +| `d` (`errorDomain`) | Original NSError domain, without category mapping. | +| `e` (`errorCode`) | Original numeric NSError code. | +| `ud` (`underlyingErrorDomain`) | Immediate underlying NSError domain, when present. | +| `ue` (`underlyingErrorCode`) | Immediate underlying numeric code, when present. | + +Unknown domains/codes are preserved even when `reload_error=other`. Localized descriptions, file paths and other userInfo contents are not serialized. The underlying error chain is not traversed beyond the immediate error. ## Testing