Skip to content

Conversation

@CommandMC
Copy link

@CommandMC CommandMC commented Jan 9, 2026

When umu starts downloading the runtime required for the specified tool, it will create a folder for it in UMU_LOCAL. If this download fails, the following code is supposed to catch the error, explain it, and stop the launch:

umu-launcher/umu/umu_run.py

Lines 888 to 894 in 24cdc86

except HTTPError as e:
if not has_umu_setup():
err: str = (
"umu has not been setup for the user\n"
"An internet connection is required to setup umu"
)
raise RuntimeError(err)

However, has_umu_setup currently only checks whether there is any non-lock file/folder in UMU_LOCAL, meaning the empty runtime directory that was created gets found, and umu is considered "setup".

With this PR, we instead search for non-lock files (not folders) in UMU_LOCAL, which avoids the above issue

@R1kaB3rN
Copy link
Member

R1kaB3rN commented Jan 9, 2026

For additional context, one case where an empty subdirectory in UMU_LOCAL can occur is when a new user is on a network that’s online but repo.steampowered.com is blacklisted.

"""Check if umu has been setup in our runtime directory."""
return path.exists() and any(
file for file in path.glob("*") if not file.name.endswith("lock")
file for file in path.glob("**/*") if file.is_file() and not file.name.endswith("lock")
Copy link
Member

@R1kaB3rN R1kaB3rN Jan 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recursively listing the contents from umu-launcher's base installation path can lead to a false negative in a session for users where a network errors occurs on runtime install, and there are multiple subdirectories (e.g., steamrt4) installed within umu-launcher's runtime installation path.

For example, if a client passes a Proton that requires a container runtime that hasn't been installed yet by umu-launcher, but during the installation process a network error had suddenly occurred.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants