Does "kf.kio.core: UDSEntry for '.' not found, creating a default one. Please fix the "kioworker" KIO worker." indicate a fault in how I'm calling it?

Query

When I call the undermentioned:

#!/usr/bin/env -S sh
kioclient ls 'applications:/'

I receive the content I expect in the output, but with an unexpected error:

PS /home/RokeJulianLockhart> kioclient ls 'applications:/'
kf.kio.core: UDSEntry for '.' not found, creating a default one. Please fix the "kioworker" KIO worker.
Development
Education
Games
Graphics
Internet
Multimedia
Office
Settings
System
Utilities
Waydroid
Help
.

Specifically:

It’s evidently minor, but I want to ensure that I’m calling it correctly.

Context

The reason I ask is Why can I not (or how to) programmatically access content of GVFS-provided URI? - Super User.

Corroboration

bugs.kde.org/show_bug.cgi?id=481288#c4 seems like it might be tangentially relevant. At least, it’s the sole evidence I have that this affects others.

Diagnosis

By the way, I am invoking the correct binary:

file $(command -v kioclient5)
/usr/bin/kioclient5: symbolic link to kioclient

kioclient6 doesn’t exist.

Workaround

It’s not infeasible to deal with:

#!/usr/bin/env python3.13

# Run the command and capture output:
kioclient_result = subprocess.run(
    [
        "kioclient",
        "ls",
        "applications:/"
    ],
    text=True,
    capture_output=True,
    check=True
)

# Split output into lines:
original_lines = kioclient_result.stdout.splitlines()
# Remove the first line:
filtered_lines = original_lines[1:] if builtins.len(original_lines) > 1 else []

# Ensure we remove the last non-empty line if it's ".":
while filtered_lines and filtered_lines[-1].strip() in {"", "."}:
    filtered_lines.pop()

# Print or process the filtered output:
print("\n".join(filtered_lines))

However, is this fragile? I wish the command just returned JSON, YAML, or XML.

You are correct.

The bug is in applications:/ kioworker.

1 Like

@meven, thank you! I’ve filed bugs.kde.org/show_bug.cgi?id=499680, if of interest to ya.

@meven, Is it really expected that a developer calls it using the shell…? I ask because I presume it’s used a lot for important functionality like the application menu and Dolphin’s plugins, which makes me wonder whether this was a bug when utilizing it via the CLI, considering that that’s an unusual way to access it.

If I’m correct, is there a library that I can call instead (even if solely via C++, instead of PyQt)? (If not, considering that it’s all FreeDesktop-standard stuff, perhaps gnome - List all desktop files that appears in application menu - Unix & Linux Stack Exchange would work.)

It is a legitimate use case.

The fact that warning is outputed means that all users will generate unnecessary logs. For applications:/ that kicker, the start menu mainly.
We want to keep our logs free of unnecessary warning, this is noisy and wasted disk space in logs.

That’s the purpose of KIO and its job here it would be KIO - KIO Namespace Reference
Passing in application:/ url.

It should indeed, this is an shared spec.

1 Like

Aha: invent.kde.org/teams/goals/streamlined-application-development-experience/-/issues/9 has “KIO” marked as incomplete.