# Launcher Process Failure ping

This ping is generated by the Firefox launcher process when it fails to successfully start the browser, or generated by the browser process when it fails to start a sandboxed process.

Structure:

```js
{
  type: "launcher-process-failure",
  "version": 1,
  "id": <UUID>,
  "creationDate": <Date string in ISO format>,
  "update_channel": <string>,
  "build_id": <string>,
  "build_version": <string>,
  // Windows version number in major.minor.build.UBR format (UBR is optional, only available on Win10)
  "os_version": <string>,
  // True if this build was running atop a Windows Server OS
  "server_os": <bool>,
  // The current user's OS locale setting
  "os_locale": <string>,
  // CPU Architecture. One of the values from the Windows SYSTEM_INFO::wProcessorArchitecture field
  "cpu_arch": <int>,
  "num_logical_cpus": <int>,
  // True if the process was launched with Administrator privileges
  // but without User Account Control (= UAC)
  "is_admin_without_uac": <bool>,
  // The type of the process which failed to start as a sandboxed process.
  // If the launcher process fails to launch the browser process, this property is not set.
  "process_type": <string>,
  "memory": {
    // Free space available in the page file, in bytes
    "total_phys": <int>,
    // Available physical memory on the machine, in bytes
    "avail_phys": <int>,
    // Free space available in the page file, in bytes
    "avail_page_file": <int>,
    // Available virtual memory on the machine, in bytes
    "avail_virt": <int>
  },
  "xpcom_abi": <string>,
  "launcher_error": {
    // The leaf name of the source file where the error was raised
    "source_file": <string>,
    // The line number of the source file where the error was raised
    "source_line": <int>,
    // The HRESULT error code of the error that was raised
    "hresult": <int>,
    // First sixteen bytes of a function that we failed to hook (Nightly-only).
    // This field is added only on detour failures.
    "detour_orig_bytes": <string>
  },
  "security": {
    // A list of names of installed antivirus products
    "av": [
      <string>,
      ...
    ],
    // A list of names of installed antispyware products
    "antispyware": [
      <string>,
      ...
    ],
    // A list of names of installed firewall products
    "firewall": [
      <string>,
      ...
    ]
  },
  // A mapping of all modules present in the failing process, including
  // their version numbers and an optional index into the signatures array
  "modules": {
    <moduleName>: [
      <string>,
      <int>
    ],
    ...
  },
  // A list of all signatures that were used to sign the binaries that are
  // listed in modules.
  "signatures": [
    <string>,
    ...
  ]
}
```

## Version History

- Firefox 82: Added `detour_orig_bytes` ([bug 1588245](https://bugzilla.mozilla.org/show_bug.cgi?id=1588245)).
- Firefox 82: Added `process_type` ([bug 1630444](https://bugzilla.mozilla.org/show_bug.cgi?id=1630444)).
- Firefox 71: Added `is_admin_without_uac` ([bug 1567605](https://bugzilla.mozilla.org/show_bug.cgi?id=1567605)).
- Firefox 67: Initial release ([bug 1460433](https://bugzilla.mozilla.org/show_bug.cgi?id=1460433)).
