Skip to content

no space left on device

Symptom

A firmware download or install step fails partway through. journalctl -u soc-ota-agent shows:

no space left on device

The deployment stays in failed state in the console.

Cause

The agent downloads firmware artifacts (.mender files, often 100–500 MB) to the device’s data store at /var/lib/otapulse/ before writing to the inactive A/B partition. The partition holding that path — or the target root partition itself — is full. Stale state from previous failed deployments can accumulate here.

Fix

On the device, check available space:

Terminal window
df -h /var/lib/otapulse/
du -sh /var/lib/otapulse/*

Clear incomplete or stale download state left by a previous failed deployment:

Terminal window
# The agent manages its own state files; removing stale module work directories is safe
# Check what is consuming space first
ls -lh /var/lib/otapulse/
# Remove stale update module working directories if present
rm -rf /var/lib/otapulse/modules/v3/*/work

Also verify the inactive root partition is not full:

Terminal window
# Find which partition is currently inactive and check its size
soc-ota-agent show-artifact
df -h /dev/mmcblk0p2 /dev/mmcblk0p3 # adjust to your actual partition paths

For a permanent fix on Yocto-built images, increase the root partition size in the WKS file for your board and rebuild the image. For Buildroot, adjust the BR2_TARGET_ROOTFS_EXT2_SIZE config option.