Connectivity & authorization
USB path, trust dialogs, and USB debugging authorization should be cleared first. Downstream errors often become noise if this layer is unstable.
Device-side state
Activation Lock, FRP, lockscreen state, and managed-device restrictions can block the workflow before erase logic really begins.
Android install flow
Play Protect, unknown-app restrictions, and prior BMDRGate state are the main causes behind APK installation failures.
iOS restore path
IPSW restore, recovery transitions, cable instability, and mid-process reboot behavior define most restore-side failures.
ADB socket behavior
Receive failures and timeouts usually point to Android communication instability, incomplete authorization, or flaky USB conditions.
Worker-internal processing
If the issue reproduces after a clean retry, collect logs early instead of burning time on blind repetition.
Representative codes and what to check first
| Code / family | Meaning | Typical cause | First check |
|---|---|---|---|
| 00020110000003EA | iOS restore failure | Restore transition failure, unstable cable, mid-process reboot, or inconsistent device response | Swap cable, restart the device, confirm recovery transition, reconnect, and retry once on the same handset |
| 0002021000002711 | APK installation failure | Play Protect, unknown-app restrictions, missing USB debugging authorization, or BMDRGate install failure | Play Protect, install permissions, USB debugging, device-side popups, and prior app state |
| 20013 family | ADB socket receive failure | Android communication instability, incomplete authorization, or poor cable / hub quality | Reconnect USB, wake the device, confirm trust / debugging dialogs, and review the hub path |
| 20014 family | ADB socket timeout | Long device-side wait, permission prompts, device lag, or unstable connectivity | Keep the device awake, clear device prompts, re-establish USB, and compare retry timing |
| 20021 family | APK install error family | Insufficient install permission, device policy blocks, existing app conflicts, or Android-side restrictions | Existing BMDRGate presence, app permissions, unknown-app settings, and MDM policy conditions |
| 9999 family | Generic INTERNAL processing error | Worker-side processing failure or mixed conditions that need log correlation | Confirm whether the failure reproduces, preserve screenshots, and record the exact steps and device state |
Families such as 20013, 20014, and 20021 remain useful even when the full 16-digit prefix differs by module or version.
How to read the code
USER / EXTERNAL / INTERNAL / SYSTEM
The right next action depends on whether the issue came from operator input, a device / external process, or worker-internal behavior.
The tail code matters most
For public troubleshooting, the tail code and the field situation are usually more actionable than a perfect prefix match.
Reproduction beats guessing
One-off noise, same-device reproduction, and port-specific behavior lead to very different support decisions.
What to include when contacting support
- Target device model, OS version, connection path, and whether a USB hub was involved
- The shown code, screenshot, and approximate timestamp
- Retry result on the same handset, and whether another port or cable changes the outcome
- Activation Lock, FRP, Play Protect, and USB debugging status
Note
This is a public troubleshooting page, not a raw internal error dump. For version-specific edge cases, field screenshots and reproduction steps remain more reliable than code text alone.
Support on masamune.com is centered on the form so the code, screenshots, and steps can stay together.