Persistent OTA Mission Issues
This alarm is covered by this guide. Applicable alarms (2)
Likely outcomes — click to expand
Based on 0 missions where this alarm fired in the last
90 days
(for ZIP_EXECUTIVE_CODE_REMISSIONING_UNSUPPORTED) as of 2026-10-13
Aggregated from fleet operations and refreshed daily. Individual outcomes may vary by site and configuration.
Background
Section titled “Background”When an OTA mission is sent by Wrangler:
- Wrangler triggers the cloud scheduler to:
- update the software database
- send the SoftwareUpdate mission to the asset
- Wrangler starts the GitHub action OTA runner.
When a mission is received, the asset writes a persistent file to record that a mission is ongoing across reboots. Once the OTA runner is done, it performs the handshake with the asset by writing the mission finished file and rebooting the asset. On reboot, the asset responds to the call-home with the mission complete, ending the persistent OTA mission.

For additional context, see the OTA deployment failure guide.
Troubleshooting Steps
Section titled “Troubleshooting Steps”graph TD
is-ota-mission-still-running{"<small><b>Step 1</b></small><br/>Question: Is the OTA mission still running in W..."}
check-zip-exec-task["<small><b>Step 2</b></small><br/>Action: Use the Zip-exec task info button in ..."]
what-is-zip-exec-task{"<small><b>Step 3</b></small><br/>Question: What is the Zip-exec task?"}
natural-timeout{"<small><b>Step 4</b></small><br/>Question: Confirm the last Software Update miss..."}
asset-healthy-return-to-production["<small><b>Step 5</b></small><br/>Action: Asset is healthy, return to production."]
retrigger-normal-ota-mission["<small><b>Step 6</b></small><br/>Action: Retrigger a normal OTA mission with a..."]
mission-stuck-no-gha-running["<small><b>Step 7</b></small><br/>Action: For most of the OTA failures, the scr..."]
confirm-stuck-mission-deployment["<small><b>Step 8</b></small><br/>Action: Search the Wrangler mission in this ..."]
is-ota-deployment-still-running{"<small><b>Step 9</b></small><br/>Question: Is the OTA deployment still running?"}
ota-not-stuck["<small><b>Step 10</b></small><br/>Action: Let the OTA complete; the mission is ..."]
power-cycle-stuck-mission-asset["<small><b>Step 11</b></small><br/>Action: Power cycle the asset using the Powe..."]
is-asset-still-stuck-after-reboot{"<small><b>Step 12</b></small><br/>Question: Is the asset still stuck on mission O..."}
trigger-direct-deploy-for-stuck-mission["<small><b>Step 13</b></small><br/>Action: Trigger a direct deploy Skipping mis..."]
is-asset-healthy-after-deploy{"<small><b>Step 14</b></small><br/>Question: Is the asset healthy after the deploy?"}
return-asset-to-production["<small><b>Step 15</b></small><br/>Action: The asset may return to service."]
stuck-mission-escalation{{"<small><b>Step 16</b></small><br/>Escalation: Escalate to OTA Support On Call."}}
is-ota-mission-still-running -->|Yes| mission-stuck-no-gha-running
is-ota-mission-still-running -->|No| check-zip-exec-task
check-zip-exec-task --> what-is-zip-exec-task
what-is-zip-exec-task -->|Task Name Sleep / Idles: In...| natural-timeout
what-is-zip-exec-task -->|**Task Name: UpdateSoftware...| confirm-stuck-mission-deployment
natural-timeout -->|Yes| retrigger-normal-ota-mission
natural-timeout -->|No, mission was successful| asset-healthy-return-to-production
retrigger-normal-ota-mission --> is-asset-healthy-after-deploy
mission-stuck-no-gha-running --> confirm-stuck-mission-deployment
confirm-stuck-mission-deployment --> is-ota-deployment-still-running
is-ota-deployment-still-running -->|Yes| ota-not-stuck
is-ota-deployment-still-running -->|No| power-cycle-stuck-mission-asset
power-cycle-stuck-mission-asset --> is-asset-still-stuck-after-reboot
is-asset-still-stuck-after-reboot -->|No| return-asset-to-production
is-asset-still-stuck-after-reboot -->|Yes| trigger-direct-deploy-for-stuck-mission
trigger-direct-deploy-for-stuck-mission --> is-asset-healthy-after-deploy
is-asset-healthy-after-deploy -->|Yes| return-asset-to-production
is-asset-healthy-after-deploy -->|No| stuck-mission-escalation
style is-ota-mission-still-running fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style check-zip-exec-task fill:#dcfce7,stroke:#22c55e,color:#14532d
style what-is-zip-exec-task fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style natural-timeout fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style asset-healthy-return-to-production fill:#dcfce7,stroke:#22c55e,color:#14532d
style retrigger-normal-ota-mission fill:#dcfce7,stroke:#22c55e,color:#14532d
style mission-stuck-no-gha-running fill:#dcfce7,stroke:#22c55e,color:#14532d
style confirm-stuck-mission-deployment fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-ota-deployment-still-running fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style ota-not-stuck fill:#dcfce7,stroke:#22c55e,color:#14532d
style power-cycle-stuck-mission-asset fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-asset-still-stuck-after-reboot fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style trigger-direct-deploy-for-stuck-mission fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-asset-healthy-after-deploy fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style return-asset-to-production fill:#dcfce7,stroke:#22c55e,color:#14532d
style stuck-mission-escalation fill:#fef3c7,stroke:#f59e0b,color:#78350f Hover or focus a block to preview it. Select the block to keep the preview open.



Note: sending a mission with no box will not trigger the GHA and bypass the handshake, thus keeping the asset in the current mission.
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.
