Common Issues
Solutions for frequently encountered problems with podkit.
Device Issues
”iPod not found” or “Device path not found”
Symptoms: podkit can’t detect your iPod
Solutions:
- Make sure the iPod is mounted (visible in Finder/Files)
- Run
podkit device scanto check if podkit can see the iPod - Check the mount point:
ls /Volumes/(macOS) orlsblk(Linux) - Try specifying the path directly:
podkit sync --device /Volumes/IPOD - On macOS with large iFlash cards, see macOS Mounting Issues
”Cannot read iPod database”
Symptoms: iPod is mounted but podkit can’t read it
Solutions:
- The iPod may need initialization. If it’s a fresh iPod or was recently restored:
Terminal window podkit device init --device /Volumes/IPOD - Check if the iPod_Control folder exists:
ls /Volumes/IPOD/iPod_Control/ - Try restoring the iPod with iTunes/Finder first
”Unknown” Model Detection
Symptoms: podkit shows your iPod as “Unknown Generation”
Solutions:
- Check if
iPod_Control/Device/SysInfoexists on your iPod - If missing, create it with your model number:
Terminal window echo "ModelNumStr: MA147" > /Volumes/IPOD/iPod_Control/Device/SysInfo - See iPod Internals for model number reference
Dependency Issues
”FFmpeg not found”
Symptoms: Sync fails because FFmpeg isn’t available
Solutions:
- Install FFmpeg:
- macOS:
brew install ffmpeg - Ubuntu:
sudo apt install ffmpeg - Fedora:
sudo dnf install ffmpeg
- macOS:
- Verify it’s in your PATH:
which ffmpeg - Check it has AAC support:
ffmpeg -encoders 2>/dev/null | grep aac
”Failed to load libgpod” or “Library not found”
Symptoms: podkit can’t load the libgpod library
Solutions:
- Verify libgpod is installed:
pkg-config --modversion libgpod-1.0 - On macOS, ensure environment variables are set:
Terminal window export PKG_CONFIG_PATH="$HOME/.local/lib/pkgconfig:$PKG_CONFIG_PATH"export DYLD_LIBRARY_PATH="$HOME/.local/lib:$DYLD_LIBRARY_PATH" - Try rebuilding:
cd tools/libgpod-macos && ./build.sh
Sync Issues
Tracks keep re-transcoding on every sync
Symptoms: Some tracks are re-transcoded every time you sync, even though nothing has changed.
Cause: VBR encoding produces content-dependent bitrates that can vary from the preset’s target. When the actual bitrate falls outside the detection tolerance, podkit thinks the preset has changed and re-transcodes the track. The new transcode produces a similarly variable bitrate, creating a cycle.
Solutions:
- Write sync tags (recommended). Sync tags store the exact preset used for each track, eliminating bitrate-based false positives entirely:
This tags all existing tracks with your current preset info. Future syncs use exact comparison for tagged tracks. See Track Upgrades — Sync Tags for details.
Terminal window podkit sync --force-sync-tags - Increase the tolerance. The default VBR tolerance is 30%. You can raise it in your config:
bitrateTolerance = 0.4 # 40% tolerance
- Switch to CBR encoding. CBR produces stable bitrates that don’t trigger false positives:
encoding = "cbr"
- Accept some re-transcoding. With VBR, a small number of tracks may be re-transcoded on each sync. This is inherent to VBR encoding and does not affect audio quality.
To force re-transcoding of all lossless-source tracks (e.g., after changing presets or encoding mode), use --force-transcode:
podkit sync --force-transcodeThis preserves play counts, ratings, and playlist membership. Preview with --dry-run first.
Not all tracks re-transcoded after switching encoding mode
Symptoms: You switched from VBR to CBR (or vice versa) at the same quality preset, but only some tracks were re-transcoded.
Cause: The iPod database stores a track’s bitrate but not how it was encoded. podkit detects changes by comparing the stored bitrate against the current preset target. When switching VBR to CBR, the tighter CBR tolerance catches tracks whose VBR bitrate landed far from the target, but tracks that are already close are left alone. When switching CBR to VBR, existing tracks at the exact target bitrate are well within VBR tolerance and are left as-is.
This is expected behaviour — tracks left alone are already at the right quality. New tracks added in future syncs will use the new encoding mode.
If you need every track re-encoded, use --force-transcode:
podkit sync --force-transcodeSync is slow
Tips to speed up sync:
- Use
--no-artworkto skip artwork transfer - Use a lower quality preset (
--quality medium) - Pre-convert your files to AAC/MP3 (no transcoding needed)
- Use a fast SD card if using iFlash
- Ensure your source drive is fast (avoid network drives for large syncs)
Tracks appear corrupted on iPod
Symptoms: Tracks skip, won’t play, or show wrong duration
Solutions:
- Eject properly with
podkit ejectbefore disconnecting - Check the source files play correctly on your computer
- Try re-syncing with
--deleteto remove and re-add tracks - Check the iPod’s filesystem for errors (see below)
Artwork showing wrong album or glitched images
Symptoms: Tracks display artwork from a different album, or artwork appears corrupted
Cause: The iPod’s artwork database has become out of sync with the thumbnail data files. This is a common issue across all iPod management software (including iTunes), usually triggered by disconnecting the iPod before all data is flushed.
Solution: Run podkit doctor to diagnose. You can either reset artwork quickly with podkit doctor --repair artwork-reset (no source collection needed) or rebuild from source with podkit doctor --repair artwork-rebuild -c <collection>. See iPod Health Checks for details.
Artwork not displaying
Symptoms: Album art doesn’t appear on iPod
Solutions:
- Ensure
SysInfofile exists (needed for artwork format detection) - Check
iPod_Control/Artwork/directory exists - Try syncing again - artwork is generated during database write
- Some very old iPods have limited artwork support
Duplicate tracks appearing
Symptoms: Same track appears multiple times on iPod
Solutions:
- Check your source for actual duplicates
- Sync with
--deleteto clean up orphaned tracks - Verify tracks have consistent metadata (artist/album/title)
Orphaned files after interrupted sync
Symptoms: iPod storage is fuller than expected, or podkit doctor reports orphan files.
Cause: If a sync was force-quit (double Ctrl+C), crashed, or the iPod was disconnected mid-sync, audio files may have been copied to the iPod without being registered in the database. These orphaned files waste storage space but don’t cause corruption.
Solution: Run podkit doctor to detect orphans, then podkit doctor --repair orphan-files to remove them. A single Ctrl+C during sync triggers a graceful shutdown that saves all completed work — orphaned files only occur from force-quit, crashes, or disconnection. See iPod Health Checks for details.
Database Issues
Database corruption
Symptoms:
- iPod shows “No Music”
- Tracks missing after sync
- iPod freezes when browsing
Solutions:
# Backup existing databasecp /Volumes/IPOD/iPod_Control/iTunes/iTunesDB ~/iTunesDB.bak
# Remove and re-syncrm /Volumes/IPOD/iPod_Control/iTunes/iTunesDB
# Re-initialize and syncpodkit device init --device /Volumes/IPODpodkit syncFilesystem errors
Solutions:
# Check filesystem (macOS - must be unmounted)diskutil verifyVolume /Volumes/IPOD
# Check filesystem (Linux - must be unmounted)sudo fsck.vfat -n /dev/sdX1
# Repair if needed (Linux)sudo fsck.vfat -a /dev/sdX1Getting More Information
Verbose output
For debugging, use multiple -v flags:
podkit sync -v # Verbosepodkit sync -vv # More verbosepodkit sync -vvv # Debug levelCheck device info
podkit device infopodkit device info --format jsonGetting help
podkit --help # General helppodkit sync --help # Sync command helppodkit device --help # Device command helpSee Also
- macOS Mounting Issues - iFlash mounting problems
- Supported Devices - Device compatibility
- iPod Internals - Technical details