OTA Error Code: ssh_target_channel_failure
This alarm is covered by this guide. Background
Section titled “Background”This error occurs when the deployment runner can reach the jump host but cannot establish an SSH connection with the target compute.
If the OTA Slack message shows that Droid OS failed while operation=wait_for_connection, the Droid may not have returned online after the OS deployment. Follow the Droid recovery steps before troubleshooting physical connections.
Other causes include an unhealthy Droid-to-Zip connection or an upstream Zip-to-Dock or Smart Cart connection.
Troubleshooting Steps
Section titled “Troubleshooting Steps”graph TD
is-droid-os-waiting-for-connection{"<small><b>Step 1</b></small><br/>Question: In the OTA Slack message, does the **..."}
does-droid-os-failure-show-wait-for-connection{"<small><b>Step 2</b></small><br/>Question: Does the Droid OS failure message inc..."}
power-cycle-droid-after-os-deployment["<small><b>Step 3</b></small><br/>Action: Power-cycle the Droid from FleetWrang..."]
did-droid-power-on-succeed{"<small><b>Step 4</b></small><br/>Question: Did DROID_POWER_ON report success?"}
did-droid-return-online{"<small><b>Step 5</b></small><br/>Question: Did the Droid return online in FleetW..."}
direct-deploy-droid["<small><b>Step 6</b></small><br/>Action: Re-deploy the Droid software using th..."]
did-direct-deploy-succeed{"<small><b>Step 7</b></small><br/>Question: Did the direct deploy succeed?"}
ota-succeeded-after-direct-deploy["<small><b>Step 8</b></small><br/>Action: No further OTA troubleshooting is nee..."]
do-you-have-physical-access{"<small><b>Step 9</b></small><br/>Question: Do you have physical access to the as..."}
reseat-the-droid-in-the-zip["<small><b>Step 10</b></small><br/>Action: Attempt to reseat the Droid in the Zi..."]
send-a-droid-lower-mission["<small><b>Step 11</b></small><br/>Action: Send the Zip a work from home mission..."]
reattempt-ota-after-droid-reseat["<small><b>Step 12</b></small><br/>Action: Reattempt OTA."]
did-second-ota-succeed{"<small><b>Step 13</b></small><br/>Question: Did the second attempt to OTA succeed?"}
ota-succeeded-after-second-attempt["<small><b>Step 14</b></small><br/>Action: No further OTA troubleshooting is nee..."]
is-zip-connected-to-cart-or-dock{"<small><b>Step 15</b></small><br/>Question: Is the Zip connected to a smart cart ..."}
reseat-smart-cart-connection["<small><b>Step 16</b></small><br/>Action: Attempt to reseat the Zip fin-to-fin ..."]
dock-physical-access{"<small><b>Step 17</b></small><br/>Question: Do you have physical access to the as..."}
send-a-reposition-mission["<small><b>Step 18</b></small><br/>Action: Send the Zip a reposition mission to ..."]
reseat-zip-in-dock["<small><b>Step 19</b></small><br/>Action: Remove the Zip from the dock and rese..."]
reattempt-ota-after-upstream-reseat["<small><b>Step 20</b></small><br/>Action: Reattempt OTA."]
did-third-ota-succeed{"<small><b>Step 21</b></small><br/>Question: Did the third attempt to OTA succeed?"}
ota-succeeded-after-third-attempt["<small><b>Step 22</b></small><br/>Action: No further OTA troubleshooting is nee..."]
escalate-to-ota-support{{"<small><b>Step 23</b></small><br/>Escalation: If you're a maintenance technician, e..."}}
is-droid-os-waiting-for-connection -->|Yes| does-droid-os-failure-show-wait-for-connection
is-droid-os-waiting-for-connection -->|No| do-you-have-physical-access
does-droid-os-failure-show-wait-for-connection -->|Yes| power-cycle-droid-after-os-deployment
does-droid-os-failure-show-wait-for-connection -->|No| do-you-have-physical-access
power-cycle-droid-after-os-deployment --> did-droid-power-on-succeed
did-droid-power-on-succeed -->|Yes| did-droid-return-online
did-droid-power-on-succeed -->|No| escalate-to-ota-support
did-droid-return-online -->|Yes| direct-deploy-droid
did-droid-return-online -->|No| escalate-to-ota-support
direct-deploy-droid --> did-direct-deploy-succeed
did-direct-deploy-succeed -->|Yes| ota-succeeded-after-direct-deploy
did-direct-deploy-succeed -->|No| escalate-to-ota-support
do-you-have-physical-access -->|Yes| reseat-the-droid-in-the-zip
do-you-have-physical-access -->|No| send-a-droid-lower-mission
reseat-the-droid-in-the-zip --> reattempt-ota-after-droid-reseat
send-a-droid-lower-mission --> reattempt-ota-after-droid-reseat
reattempt-ota-after-droid-reseat --> did-second-ota-succeed
did-second-ota-succeed -->|Yes| ota-succeeded-after-second-attempt
did-second-ota-succeed -->|No| is-zip-connected-to-cart-or-dock
is-zip-connected-to-cart-or-dock -->|Smart Cart| reseat-smart-cart-connection
is-zip-connected-to-cart-or-dock -->|Dock| dock-physical-access
reseat-smart-cart-connection --> reattempt-ota-after-upstream-reseat
dock-physical-access -->|No| send-a-reposition-mission
dock-physical-access -->|Yes| reseat-zip-in-dock
send-a-reposition-mission --> reattempt-ota-after-upstream-reseat
reseat-zip-in-dock --> reattempt-ota-after-upstream-reseat
reattempt-ota-after-upstream-reseat --> did-third-ota-succeed
did-third-ota-succeed -->|Yes| ota-succeeded-after-third-attempt
did-third-ota-succeed -->|No| escalate-to-ota-support
style is-droid-os-waiting-for-connection fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style does-droid-os-failure-show-wait-for-connection fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style power-cycle-droid-after-os-deployment fill:#dcfce7,stroke:#22c55e,color:#14532d
style did-droid-power-on-succeed fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style did-droid-return-online fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style direct-deploy-droid fill:#dcfce7,stroke:#22c55e,color:#14532d
style did-direct-deploy-succeed fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style ota-succeeded-after-direct-deploy fill:#dcfce7,stroke:#22c55e,color:#14532d
style do-you-have-physical-access fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style reseat-the-droid-in-the-zip fill:#dcfce7,stroke:#22c55e,color:#14532d
style send-a-droid-lower-mission fill:#dcfce7,stroke:#22c55e,color:#14532d
style reattempt-ota-after-droid-reseat fill:#dcfce7,stroke:#22c55e,color:#14532d
style did-second-ota-succeed fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style ota-succeeded-after-second-attempt fill:#dcfce7,stroke:#22c55e,color:#14532d
style is-zip-connected-to-cart-or-dock fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style reseat-smart-cart-connection fill:#dcfce7,stroke:#22c55e,color:#14532d
style dock-physical-access fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style send-a-reposition-mission fill:#dcfce7,stroke:#22c55e,color:#14532d
style reseat-zip-in-dock fill:#dcfce7,stroke:#22c55e,color:#14532d
style reattempt-ota-after-upstream-reseat fill:#dcfce7,stroke:#22c55e,color:#14532d
style did-third-ota-succeed fill:#dbeafe,stroke:#3b82f6,color:#1e3a5f
style ota-succeeded-after-third-attempt fill:#dcfce7,stroke:#22c55e,color:#14532d
style escalate-to-ota-support fill:#fef3c7,stroke:#f59e0b,color:#78350f Hover or focus a block to preview it. Select the block to keep the preview open.

operation=wait_for_connection?
DROID_POWER_ON report success?For steps, see:
- EV2 UMM: 14.1.1.b Droid-Only Software Update
- EV3 UMM: 14.1.1.b Droid-Only Software Update
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
There are no open suggestions.
Open pull requests
There are no open pull requests.