09 Troubleshooting appendix
Keyed to the message you actually see. The strings below are taken from the
frozen source at commit 8e637cb; where a message comes from adb itself it is
passed through unchanged. None of these rows was re-created by hand on a device
while this manual was updated, so they describe the code paths rather than a
freshly reproduced run.
On the phone (Android app)
Messages appear in the Activity card under the work banner, and the current stage appears in the banner itself.
| What you see | What it means | Fix |
|---|---|---|
Folder access granted: <name> |
The folder grant was persisted | Nothing; the scan starts automatically |
Folder access granted for this session only; the provider would not persist it: <name> |
The provider refused a persisted grant, so the app will ask again next launch | Continue working; if it repeats, pick a folder on the device's own storage rather than a cloud or network provider |
Scan found N files in M folders; K candidate files. |
Normal scan result; K is what the list shows | If K is 0, press Change folder and grant the camera folder or its parent |
... (stopped at the configured file cap) |
The scan hit its file limit | Grant a narrower folder |
... ; M folders were unreadable. |
Some directories refused access | Usually harmless; if the recording is in one of them, grant that folder on its own |
Inspection: <state> / <strategy> |
What the engine thinks the file is | Nothing; it is informational |
Select the recording on the Recover tab first. |
You pressed an Audio-tab action before selecting a file | Select the recording on Recover, then return to Audio |
No reference recording was supplied. Audio needs the codec configuration from a playable recording of the same kind, or you can import audio. |
Automatic audio recovery had no reference to take the AAC configuration from | Mark a playable recording with Use as reference recording, or import audio you already have |
Import a recording of the same session if you want to align it by ear. |
The file's audio did not decode | Use Import audio (chapter 07) |
The engine did not identify a decodable audio region. |
No region passed the engine's rules | Try a reference recording; otherwise video-only |
No audio region was found in this recording. |
The payload held no interleaved audio | The recording was probably video-only, or the audio was never flushed |
The engine reported regions but no AAC configuration. |
Regions exist but the reference supplied no audio configuration | Use a reference recorded by the same app and settings |
the decoder's input buffer (N bytes) cannot hold the whole recovered region (M bytes), and splitting it on byte boundaries is known to destroy audio |
The region is larger than a single decoder input buffer | This is an engine limit reported honestly; the desktop companion handles it, or import audio |
the decoder produced no PCM for this region / the decoder reported silence |
The region did not decode to real samples | Not audio; import a separate recording |
| `Repair SUCCESS: wrote |
...` | The repair wrote a new file; the rest of the line is the real frame, duration and audio facts |
Repair FAILED: <message> |
The engine refused or could not finish; the message names the reason, for example a missing payload, an unknown codec, or no parameter sets | Read the message; a missing reference is the most common cause |
Repair CANCELLED: cancelled; no output was kept |
You pressed Cancel | Run it again when ready; the source is untouched |
Export failed: <reason> |
The write to the chosen folder failed | Check free space and that the folder is writable, then retry |
Export cancelled; no partial file was left behind. |
You cancelled during export | Retry |
WARNING: the destination hash did not match the source hash. |
The verification failed | Delete the exported file and retry; if it repeats, report it |
WARNING: the original changed while it was being read. |
Something else wrote to the source during the copy | Close other apps touching that folder and retry |
Ads unavailable (no production ad unit is configured in this build). The export is not blocked. |
A release build with no ad unit configured. This does not happen in the shipped build, which has a production unit; seeing it means the build was made without one | Nothing for the export; press Export repaired |
Ads unavailable (no analytics/ads consent decision has been granted in this build). The export is not blocked. |
You declined the consent dialog | Nothing for the export; change the switch in Settings if you want the ad/analytics path enabled |
Ad unavailable (<reason>). The export is not blocked. |
An ad was configured but could not be loaded | Nothing; the export proceeds |
You chose not to watch an ad. Exporting without one; no ad was shown. |
You pressed Skip and export | Nothing; this is a supported path |
Choose an export folder first. |
Export repaired was pressed before choosing a destination | Press Export folder |
On the desktop companion
Messages appear in the log panel on each tab and in the status bar.
| What you see | What it means | Fix |
|---|---|---|
adb: not found |
No platform-tools copy is available | Setup > Install managed platform-tools |
No devices reported. |
adb devices -l returned an empty list |
Cable, USB mode, driver or Wireless debugging. Chapters 03 to 05 |
No authorised device found. Connect the phone, accept the "Allow USB debugging" prompt, then refresh. adb reported no devices at all. |
The phone has not approved this computer | Unlock the phone and accept the prompt, then Refresh devices |
... Reported: <serial> (unauthorized) |
The phone is visible but not approved | Same as above; or revoke authorisations on the phone and reconnect |
More than one device is attached (<serial>, <serial>). Select the phone you want to use. |
Two usable devices | Press use this next to the phone you want |
Device <serial> is not ready (state: offline). |
The chosen device dropped | Replug or reconnect, then Refresh devices |
Device <serial> is no longer attached. |
The chosen device disappeared | Refresh |
adb devices failed: <message> |
The adb call itself failed | The message is adb's; check the cable and the managed install |
That remote path contains control characters and was refused. |
The path field contained a NUL or newline | Retype the path |
Refusing to overwrite an existing file: <path> |
Pull destination already exists | Choose another destination |
The pulled file is empty (0 bytes); nothing was transferred. |
The remote path named an empty file or a directory | Check the path on the phone |
The pairing code shown on the phone is numeric (6 digits). |
A non-numeric code was typed | Retype the six digits |
Use host:port, exactly one colon (e.g. 192.168.1.50:37000). |
The address field is malformed | Use the address exactly as shown on the phone |
The port must be between 1 and 65535. |
Wrong port typed | Re-read the port on the phone; pairing and connecting use different ports |
choose a broken recording and an output file first |
Repair pressed with fields empty | Fill sections 1 and 4 on the Repair tab |
choose both the broken file and a reference recording |
Decode + preview pressed with fields empty | Fill both paths on the Audio tab |
The decoder reported silence for these ranges: treat this as a failed audio recovery. |
The desktop decoder produced no real signal | Use the fallback section with audio you already have |
repair the video first, then export the aligned audio |
Mux into repaired video pressed with no repaired video | Repair first, then mux |
adb strings you may see quoted in a log
The companion passes adb's own output through, so these appear verbatim:
| String | Meaning |
|---|---|
adb: no devices/emulators found |
adb itself sees nothing |
unauthorized / offline |
Device state inside adb devices -l |
more than one device/emulator |
adb needs an explicit serial |
adb server version (n) doesn't match this client |
Two different adb builds are running |
error: closed |
A transfer or connection dropped mid-way |
Permission denied |
The remote path is not readable by the shell |
When to ask for help
Collect three things, and include no personal media:
- The exact message text and the tab or step where it appeared.
- The version: the phone app shows it in the top bar and under Settings > About; the desktop shows it in the header.
- The phone model and Android version, plus how you connected.
Do not attach the recording itself. The app's own event list is designed to carry no filenames, paths or media, so a diagnostics report is safer to share than a screenshot of your file list.