Skip to content

Extension drawer #352

Description

@gwen-mkd

Describe the bug

Hello,
corrupts all the previously installed models.

Image

Steps to reproduce

Hello,
When using an AppImage, every time I restart the application, it asks me for the data path again instead of saving it. Once I re-enter the path, it corrupts all the previously installed models. The “Repair” option doesn't work, and if I uninstall and reinstall the model after a restart, that doesn't work either.

Modly version

0.4.2

Operating system

Mint

Screenshots & logs

[2026-09-18T08:03:48.678Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:03:48.678Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:03:48.678Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:03:48.679Z] [RUNTIME] [Registry] ERROR: Extension 'trellis2' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:03:48.679Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:03:48.679Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[2026-09-18T08:04:21.274Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.274Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.275Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.275Z] [RUNTIME] [Registry] ERROR: Extension 'trellis2' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.275Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.275Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.275Z] [RUNTIME] [Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[Registry] Reload complete.
[2026-09-18T08:04:21.326Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.326Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.326Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.327Z] [RUNTIME] [Registry] ERROR: Extension 'trellis2' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.327Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.327Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:21.327Z] [RUNTIME] [Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[Registry] Reload complete.
[2026-09-18T08:04:28.821Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:28.821Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:28.821Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:28.822Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:28.822Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:28.822Z] [RUNTIME] [Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[Registry] Reload complete.
[2026-09-18T08:04:44.243Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.243Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.243Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.243Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.243Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[2026-09-18T08:04:44.279Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.280Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:04:44.281Z] [RUNTIME] [Registry] Node 'hunyuan3d-mini-turbo/generate' needs setup (venv missing)
[Registry] Skipping 'modly-acestep-15-extension': type 'process' is not handled by this registry
[Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[Registry] Skipping 'pymeshlab': type 'process' is not handled by this registry
[Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.
[Registry] WARNING: No extensions found.
[Registry] Reload complete.
INFO: 127.0.0.1:60316 - "POST /extensions/reload HTTP/1.1" 200 OK
[2026-09-18T08:07:44.189Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-2-1' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:07:44.190Z] [RUNTIME] [Registry] ERROR: Extension 'hunyuan3d-21-lowvram' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:07:44.190Z] [RUNTIME] [Registry] ERROR: Extension 'pi3' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:07:44.191Z] [RUNTIME] [Registry] ERROR: Extension 'triposg' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:07:44.191Z] [RUNTIME] [Registry] ERROR: Extension 'triposplat' has an incomplete installation or interrupted runtime registration. Restart Modly to recover it, or click 'Repair' on the Models page.
[2026-09-18T08:07:44.191Z] [RUNTIME] [Registry] ERROR: Failed to instantiate generator 'hunyuan3d-mini-turbo/generate': venv not found — extension needs setup. Click 'Repair' on the Models page to run setup.py.

Confirmation

  • I have searched existing issues and this has not been reported yet.
  • I can reproduce this on the latest version of Modly.

Activity

  1. DrHepa commented on Sep 24, 2026

    @DrHepa
    SponsorContributor

    I investigated this against the v0.4.2 tag and found a reproducible AppImage-specific failure in the bundled Python copy.

    Root cause

    ensureStableEmbeddedPython() correctly recognizes that process.resourcesPath is an ephemeral AppImage mount (/tmp/.mount_Modly-*) and copies python-embed into userData. However, the copy currently uses:

    await cp(getEmbeddedPythonDir(), stableDir, {
      recursive: true,
      preserveTimestamps: true,
    })

    Node's fs.cp() defaults verbatimSymlinks to false. The bundled runtime contains relative links such as bin/python3 -> python3.11; during the copy, that link is resolved into an absolute link back into the current /tmp/.mount_Modly-* source. Once the AppImage exits and the mount disappears, the copied interpreter and venv interpreter chain become dangling links.

    On the next launch, checkSetupNeeded() sees the venv Python as missing and returns needed: true, which reopens the data-folder chooser. The data path was not necessarily lost: it is still persisted in <userData>/settings.json. The chooser nevertheless supplies Documents/Modly as its default instead of reconstructing the previously saved base directory, so confirming another location overwrites the active model/workspace/extension paths and makes the previous installation appear lost or corrupt.

    The registry's incomplete installation or interrupted runtime registration message is also a quarantine/readiness result (.modly-incomplete / .modly-registration-pending), not proof that model weight files themselves were corrupted.

    Relevant code:

    • electron/main/python-setup.ts, checkSetupNeeded() and ensureStableEmbeddedPython()
    • electron/main/ipc-handlers.ts, setup:check and setup:saveDataDir
    • api/services/generator_registry.py, interrupted-installation handling

    I also reproduced the fs.cp() behavior independently: copying a directory containing bin/python3 -> python3.11 with the current options produced a link pointing back to the source directory; removing the source left the copied link dangling.

    Proposed fix

    1. Preserve the runtime's relative symlinks when copying:
    await cp(getEmbeddedPythonDir(), stableDir, {
      recursive: true,
      preserveTimestamps: true,
      verbatimSymlinks: true,
    })
    1. Validate after copying (and before accepting an existing stable runtime) that the Python entry point resolves to an existing target contained within stableDir. If validation fails, delete and rebuild the stable copy instead of trusting only .app-version.
    2. Ensure the next release rebuilds the affected stable runtime/core venv; extension venvs whose interpreter links are already dangling will also need to be recreated or repaired once using the corrected stable interpreter.
    3. When setup is required again, return the saved data base directory rather than always defaulting to Documents/Modly, so recovery cannot silently redirect an existing installation.

    Suggested regression coverage

    • Copy a fixture Python tree containing relative symlinks from a temporary /tmp/.mount_Modly-*-like directory.
    • Delete the source directory.
    • Assert the copied Python link still resolves inside stableDir and can be executed.
    • Assert checkSetupNeeded() remains false across the simulated restart.
    • Assert recovery keeps the previously saved models/workspace/extensions/dependencies base path.

    This diagnosis is source-backed and the symlink-copy behavior is reproduced, but the proposed patch still needs validation with a rebuilt AppImage through install, close, reopen, extension discovery, and Repair.

  2. DrHepa commented on Sep 24, 2026

    @DrHepa
    SponsorContributor

    After comparing the issue history and logs, this is the same AppImage restart failure already tracked by #210. Issue #285 is an additional v0.4.2 reproduction with the same sequence: the first run works, reopening triggers setup again, extension venvs are missing/incomplete, and Repair fails.

    I have consolidated the source-backed diagnosis and proposed fix on #210: #210 (comment). The logs in this report remain useful corroborating evidence for the affected extensions on Linux Mint.

    Maintainers: please treat this as a duplicate of #210 and consolidate further technical discussion there.

  3. gwen-mkd commented on Sep 24, 2026

    @gwen-mkd
    Author

    ok, thank, good job.

  4. Lorchie commented on Oct 9, 2026

    @Lorchie
    Collaborator

    This is the same root cause as #210 (the bundled Python runtime copied out of the AppImage with broken symlinks). It's fixed in v0.4.3. The prompt asking for the data folder on every launch came from the same bug, since the app thought setup had never completed.

    Please update to v0.4.3. If an extension still shows as incomplete, run Repair once. If the problem persists, feel free to reopen this issue with your logs.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions