Skip to content

[bug]: invoke desktop application fails to updated due to (valid) global uv configuration #9498

Description

@sammcj

Is there an existing issue for this problem?

  • I have searched the existing issues

Install method

Invoke's Launcher

Operating system

macOS

GPU vendor

Apple Silicon (MPS)

GPU model

M5 Max

GPU VRAM

No response

Version number

v6.14.0-rc1

Browser

No response

System Information

No response

What happened

When trying to update Invoke via the desktop app, the app fails to parse the users uv configuration.

- Invoke version: v6.14.0-rc1
- Install location: /Users/samm/Applications/InvokeAI
- Python version: 3.12
...
Using existing virtual environment...
Installing invokeai package...
> /Applications/Invoke Community Edition.app/Contents/Resources/bin/uv pip install --python 3.12 --python-preference only-managed invokeai==v6.14.0-rc1 --force-reinstall --compile-bytecode
error: Failed to parse: `/Users/samm/.config/uv/uv.toml`
  Caused by: TOML parse error at line 4, column 17
  |
4 | exclude-newer = "3 days"
  |                 ^^^^^^^^
failed to parse year in date "3 days": failed to parse "3 da" as year (a four digit integer): invalid digit, expected 0-9 but got
Failed to install invokeai python package: Process exited with code 2

This is likely as Invoke's bundled uv is too old to parse exclude-newer durations in user config.

Updating via the desktop app fails when ~/.config/uv/uv.toml sets a relative-duration cooldown. uv reads the user's global config regardless of which binary invoked it, so the bundled uv chokes on config that works everywhere else.

The uv.toml is valid and follows package manager best practices to prevent packages newer than n days from being installed as a security measure by setting exclude-newer = "3 days".

uv's exclude-newer is:

  • Valid uv configuration since Dec 2025.
  • Follows security best practices.
  • Is set in my global uv.toml and works with everything else.
  • Offers exclude-newer-package = { package_name = false } for overrides.

https://docs.astral.sh/uv/reference/settings/#exclude-newer

Temporarily commenting out the setting in uv.toml allows the updater to work.

What you expected to happen

Invoke to update without issue, by correctly passing the users uv.toml.

How to reproduce the problem

  1. Set exclude-newer = "3 days" in ~/.config/uv/uv.toml
  2. Try updating invoke via the 'Invoke Community Edition' desktop app

Additional context

No response

Discord username

protoporpoise

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions