KDE Frameworks 6.32.0 Ships with the Fix for a 15-Year-Old USB Copy Bug
KDE shipped KDE Frameworks 6.32.0 on Friday, 13 November 2026, and this month's monthly update quietly closes a bug that dates back to 2011. Copy files to a USB stick, watch the completion pop-up, and unplug the drive: in some cases you'd have lost data. That's actually fixed now.
The release is the twelfth monthly update in the Frameworks 6 series, the current stable line underpinning the KDE Plasma desktop and the KDE Gear application suite. As with every monthly drop, it's a bug-fix and cleanup cycle rather than anything that makes news headlines. But this one's a bit special. It closes the USB copy bug, reworks the search engine, and hardens the file-access layer, all while requiring Qt 6.10.0.
KDE Frameworks is a collection of 83 add-on libraries for building apps with Qt. If Qt doesn't already do something — hardware integration, network file access, contacts and calendars, syntax highlighting, there's very likely a Framework for it. Historically these were bundled as one giant package called kdelibs, and the Frameworks concept launched in July 2014 split that monolith into smaller, independently versioned modules. That modularization keeps per-application dependencies lean and lets each module evolve at its own pace.
Frameworks sit between Qt at the bottom and Plasma and Gear higher up the stack. Fixes here ripple outward and improve virtually every KDE application at once, which is why a "boring" monthly release can still change your desktop experience. The official announcement frames it in standard terms: "This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner."
Fixing the "white whale" USB bug
If one thing from this release makes its way around the tech press, it's this.
Back in 2011, someone filed bug report #281270 describing a copy that reported success the moment files reached the local page cache, not when they'd actually landed on physical media. You could be told a transfer was done, yank the drive out, and risk corruption. The thread picked up 77+ comments and 17+ duplicate reports, and the symptom stuck around for years.
I'll admit I've been caught out by exactly this once. Told a copy was done, pulled the drive, and spent ten minutes recovering half a folder.
The fix has a long, awkward history, which KDE developer Méven Car laid out in a blog post. As he describes it, the problem was a "white whale." In September 2011 developers identified the sync_file_range() system call as the right tool but couldn't get it working. Nate Graham cranked the priority to highest in 2021, and Car tried the same approach two more times. Both merges came through with the wait logic still commented out.
The version in 6.32 finally gets it right. The copy engine now waits for writeback of the write window just before the one most recently written, aligned to 8 MiB boundaries. It only deletes moved sources after the destination data has been flushed, and flushes a removable device when a copy fails or gets cancelled. The completion notification now means what it always promised.
It's a fair amount of engineering to make a progress bar honest. However, at the same time, data loss is never a feature, so I'd argue it's worth it. Head here to Car's full write-up if you want the deep technical details.
Baloo gets a modern search overhaul
The single biggest block of changes in 6.32 lands in Baloo, KDE's file-indexing and desktop-search engine. This is an architectural modernization rather than a cosmetic sweep.
A new scope parameter on Query lets searches be limited to specific dimensions: filename, file content, and metadata. The baloosearch command-line tool gains options to limit the default search scope, list supported properties, and list supported values for a type option. balooshow -x now shows property names too.
Under the hood, the term-generation and storage layers were substantially reworked. Positions for filename and mimetype are dropped from the positions DB in favor of more appropriate databases, the SearchStore became a namespace, and intermediate Term objects were eliminated from hot code paths.
The baloo_file daemon is now D-Bus activatable, and the extractor no longer depends on KIdleTime. Crash resistance improved as well: Baloo no longer crashes on invalid input for the tag property, avoids integer over- and underflow in comparisons, and handles malformed date strings more gracefully. In short, the backend stores and processes terms more efficiently, and KRunner and Dolphin get more predictable queries out of the deal.
The rest of the stack
Beyond the headline items, 6.32 spreads its fixes across the whole framework set. KIO gets sendfile() between filesystems, faster copies via copy_file_range() calls aligned to 8 MiB, and fixed free-space reporting that no longer flags sizes no filesystem has as unsupported. Windows parity shows up in a recycle-bin worker for Trash, and KWallet stops waiting up to 24 days for a wallet that never answers.
The editing layer gets some real correctness fixes. KTextEditor, which powers Kate and KWrite, now refuses to save over a file already open in another document, preserves the existing selection when entering Visual Mode, and fixes a use-after-free in code folding. Syntax Highlighting adds C++ #embed support and JSON5 unquoted keys.
Graphics-wise, non-integer scale-factor icons come out sharper, Kirigami fixes mouse-wheel handling on Wayland so actions no longer fire twice, and KImageFormats adds BC4/BC5/BC6H/BC7 DDS support plus lossy HTJ2K from OpenEXR 3.5. That last batch is largely security-conscious, with many entries driven by OSS-Fuzz heap-safety work.
It's a fair bit of polish for what's nominally a maintenance release. Though honestly, the USB fix and the Baloo rework together probably justify the wait on their own.
How to get it
Linux users: the easiest path is your distribution's package manager. Frameworks 6.32 typically appears first in rolling-release distros, with others following their own schedules.
Head here to the release announcement.
