ZIP_LOCAL_T_ECEF_UNAVAILABLE and ZIP_LOCAL_T_ECEF_TIMED_OUT
This alarm is covered by this guide. Applicable alarms (2)
Likely outcomes — click to expand
Based on 861,745 missions where this alarm fired in the last
90 days
(for ZIP_LOCAL_T_ECEF_UNAVAILABLE) as of 2026-10-13
Grounding vs discrepancy (of 5,566 ZERP issues filed on these missions)
Top work orders
- EV3: Inspect Aircraft after Droid Left Behind (DLB) · MAINTENANCE_ACTION 208
- Troubleshoot Hover Motor Resistance on Aircraft · INSPECTION 77
- EV2: Troubleshoot Electrical Contacts on Aircraft and Droid · INSPECTION 71
- Reset Droid Lid · TROUBLESHOOTING 57
- EV2: ZCO-2026-08-03 Lower Foam Wear Pad Retrofit (FRCO-286 / SB-2026-023) · UPGRADE_RETROFIT 35
Frequently replaced parts
| Part | P/N | Removals |
|---|---|---|
| SERVO, ASSY, UNIVERSAL, P2 | 20398 | 972 |
| CCW/CW HOVER MOTOR ASSY, ZIP, P2 | 19607 | 822 |
| ASSY, SPOOL AND LINE, DOCKING FIN, AIRCRAFT, P2 | 48477 | 754 |
| PRE-PREG TAIL ASSY STBD(RH), ZIP, P2 | 21840 | 624 |
| TAIL PORT, ZIP, P2 | 31280 | 594 |
Aggregated from fleet operations and refreshed daily. Individual outcomes may vary by site and configuration.
Background
Section titled “Background”ZIP_LOCAL_T_ECEF_UNAVAILABLE indicates that Exec is not receiving a fresh zip-local-to-ECEF pose from Zip Nav within the watchdog timeout. ZIP_LOCAL_T_ECEF_TIMED_OUT is the corresponding startup-timeout alarm. This guide covers both alarms.
This alarm is present nominally whenever the Zip is idle.
Use this guide when either alarm is associated with a mission failure. Do not treat an idle ZIP_LOCAL_T_ECEF_UNAVAILABLE alarm as the cause of a vehicle issue.
When the Aircraft is indoors, ZIP_LOCAL_T_ECEF_TIMED_OUT is expected and no action is needed.
Troubleshooting Steps
Section titled “Troubleshooting Steps”graph TD
check-zip-nav-operations-mode["<small><b>Step 1</b></small><br/>Telemetry: This widget should load a 2D plot of ..."]
check-whether-navigation-was-requested{"<small><b>Step 2</b></small><br/>Question: In the zip-nav-operations-mode plot..."}
alarm-was-expected["<small><b>Step 3</b></small><br/>Action: ZIP_LOCAL_T_ECEF_UNAVAILABLE and Z..."]
power-cycle-aircraft["<small><b>Step 4</b></small><br/>Action: Power cycle the Aircraft/procedure..."]
did-health-check-pass{"<small><b>Step 5</b></small><br/>Question: Did the health check pass and is the ..."}
the-aircraft-may-return-to-service("<small><b>Step 6</b></small><br/>Reference: The Aircraft may return to service.")
check-gnss-a-plot["<small><b>Step 7</b></small><br/>Telemetry: Use the gnss-a-raw-status template...."]
check-gnss-a{"<small><b>Step 8</b></small><br/>Question: Does the gnss-a-raw-status plot sho..."}
check-gnss-b-before-side-a-plot["<small><b>Step 9</b></small><br/>Telemetry: Before replacing the side A tail asse..."]
check-gnss-b-before-side-a{"<small><b>Step 10</b></small><br/>Question: Does the gnss-b-raw-status plot sho..."}
escalate-local-gnss-interference{{"<small><b>Step 11</b></small><br/>Escalation: Both GNSS A and GNSS B show degraded ..."}}
replace-side-a-tail-assembly["<small><b>Step 12</b></small><br/>Action: GNSS A is not receiving adequate sign..."]
check-compute-bridge-plot["<small><b>Step 13</b></small><br/>Telemetry: Use the gnss-b-a-data-bridge templa..."]
check-compute-bridge{"<small><b>Step 14</b></small><br/>Question: Does the gnss-b-a-data-bridge plot ..."}
escalate-compute-b-issue{{"<small><b>Step 15</b></small><br/>Escalation: The telemetry indicates a Compute B i..."}}
check-gnss-b-plot["<small><b>Step 16</b></small><br/>Telemetry: Use the gnss-b-raw-status template...."]
check-gnss-b{"<small><b>Step 17</b></small><br/>Question: Does the gnss-b-raw-status plot sho..."}
replace-side-b-tail-assembly["<small><b>Step 18</b></small><br/>Action: GNSS B is not receiving adequate sign..."]
check-imu-plot["<small><b>Step 19</b></small><br/>Telemetry: Use the nav-has-imu-data template. ..."]
check-imu{"<small><b>Step 20</b></small><br/>Question: Is HAS_PIM_FOR_EVERY_EPOCH false ..."}
escalate-imu{{"<small><b>Step 21</b></small><br/>Escalation: The problem is with the IMU. Escalate..."}}
escalate-to-p2-nav{{"<small><b>Step 22</b></small><br/>Escalation: Escalate to P2 Nav On Call."}}
check-zip-nav-operations-mode --> check-whether-navigation-was-requested
check-whether-navigation-was-requested -->|No, neither signal was ACTIVE| alarm-was-expected
check-whether-navigation-was-requested -->|Yes, at least one signal wa...| power-cycle-aircraft
power-cycle-aircraft --> did-health-check-pass
did-health-check-pass -->|Yes, the health check passe...| the-aircraft-may-return-to-service
did-health-check-pass -->|No, the health check failed...| check-gnss-a-plot
check-gnss-a-plot --> check-gnss-a
check-gnss-a -->|Yes, at least one of those ...| check-gnss-b-before-side-a-plot
check-gnss-a -->|No, none of those condition...| check-compute-bridge-plot
check-gnss-b-before-side-a-plot --> check-gnss-b-before-side-a
check-gnss-b-before-side-a -->|Yes, at least one of those ...| escalate-local-gnss-interference
check-gnss-b-before-side-a -->|No, none of those condition...| replace-side-a-tail-assembly
check-compute-bridge-plot --> check-compute-bridge
check-compute-bridge -->|Yes, both plots are healthy| check-gnss-b-plot
check-compute-bridge -->|No, the timestamps are not ...| escalate-compute-b-issue
check-gnss-b-plot --> check-gnss-b
check-gnss-b -->|Yes, at least one of those ...| replace-side-b-tail-assembly
check-gnss-b -->|No, none of those condition...| check-imu-plot
check-imu-plot --> check-imu
check-imu -->|Yes, HAS_PIM_FOR_EVERY_EPOC...| escalate-imu
check-imu -->|No, HAS_PIM_FOR_EVERY_EPOCH...| escalate-to-p2-nav
style check-whether-navigation-was-requested fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style alarm-was-expected fill:#dcfce7,stroke:#22c55e,color:#14532d
style power-cycle-aircraft fill:#dcfce7,stroke:#22c55e,color:#14532d
style did-health-check-pass fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style the-aircraft-may-return-to-service fill:#f3e8ff,stroke:#a855f7,color:#581c87
style check-gnss-a fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style check-gnss-b-before-side-a fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style escalate-local-gnss-interference fill:#fef3c7,stroke:#f59e0b,color:#78350f
style replace-side-a-tail-assembly fill:#dcfce7,stroke:#22c55e,color:#14532d
style check-compute-bridge fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style escalate-compute-b-issue fill:#fef3c7,stroke:#f59e0b,color:#78350f
style check-gnss-b fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style replace-side-b-tail-assembly fill:#dcfce7,stroke:#22c55e,color:#14532d
style check-imu fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style escalate-imu fill:#fef3c7,stroke:#f59e0b,color:#78350f
style escalate-to-p2-nav fill:#fef3c7,stroke:#f59e0b,color:#78350f Hover or focus a block to preview it. Select the block to keep the preview open.
ZIP_LOCAL_T_ECEF_UNAVAILABLE and ZIP_LOCAL_T_ECEF_TIMED_OUT are expected when the vehicle is inactive. They are not the cause of the vehicle issue. Identify and troubleshoot the alarm or failure that prevented the mission.gnss-a-raw-status template. The incident URL from the previous telemetry step is reused automatically, preserving the exact incident window. Check /compute_a.debug.gpsins.update_flags.flags.HAS_ALL_SIGNALS_ON_STARTUP and /compute_a.gnss.observation_epochs.observations[<em>].signals[</em>].cn0.gnss-a-raw-status plot show:-
HAS_ALL_SIGNALS_ON_STARTUP frequently stuck at false?- Empty
cn0 channels?- All
cn0 channels below 40 dB-Hz?gnss-b-raw-status template. The incident URL is reused automatically, preserving the exact incident window. Check the GNSS B signals.gnss-b-raw-status plot show:-
HAS_ALL_SIGNALS_ON_STARTUP_SECONDARY frequently stuck at false?- Empty
cn0 channels?- All
cn0 channels below 40 dB-Hz?EV2: Use this template: https://zerp.flyzipline.com/maintenance/work-order-templates/24
For side A (this step), STARBOARD tail must be specified to be replaced.
EV3 Use this template: https://zerp.flyzipline.com/maintenance/work-order-templates/672
For Side A (this step), PORT tail must be specified to be replaced.
gnss-b-a-data-bridge template. The incident URL from the previous telemetry step is reused automatically, preserving the exact incident window. Compare the Compute B and Compute A plots during the incident.gnss-b-a-data-bridge plot show steadily incrementing timestamps on both plots?gnss-b-raw-status template. The incident URL from the previous telemetry step is reused automatically, preserving the exact incident window. Check /compute_a.debug.gpsins.update_flags.flags.HAS_ALL_SIGNALS_ON_STARTUP_SECONDARY and /compute_b.gnss.observation_epochs.observations[<em>].signals[</em>].cn0.gnss-b-raw-status plot show:-
HAS_ALL_SIGNALS_ON_STARTUP_SECONDARY frequently stuck at false?- Empty
cn0 channels?- All
cn0 channels below 40 dB-Hz?EV2: Use this template: https://zerp.flyzipline.com/maintenance/work-order-templates/24
For side B (this step), PORT tail must be specified to be replaced.
EV3 Use this template: https://zerp.flyzipline.com/maintenance/work-order-templates/672
For Side B (this step), STARBOARD tail must be specified to be replaced.
nav-has-imu-data template. The incident URL from the previous telemetry step is reused automatically, preserving the exact incident window. Check /compute_a.debug.gpsins.update_flags.flags.HAS_PIM_FOR_EVERY_EPOCH.HAS_PIM_FOR_EVERY_EPOCH false in the nav-has-imu-data plot during the incident?Resolution note
This plaintext block is ready to paste into the Resolution Note field on the ZERP issue you're working. The permalink below gives engineering review access to the full step-by-step timeline including any back-navigation; share it if the case needs a deeper look.
Permalink:
Session is too large to fit in a URL. Use Download session JSON to share the timeline out-of-band.
Did this guide help you get unblocked?
Open suggestions
Open pull requests
There are no open pull requests.