Skip to content

hasNextcloudApp passes for an app a major upgrade disabled but left on disk #128

Description

@helix-a

hasNextcloudApp (startos/utils.ts:19) decides an app is present by looking for its directory. A major Nextcloud upgrade is exactly the event that disables an incompatible app while leaving its files on disk, so after one the check returns true for apps that are no longer usable.

Upstream's entrypoint.sh confirms occ upgrade auto-disables incompatible apps — it diffs get_enabled_apps before and after and prints "The following apps have been disabled". Of the 457 apps with a Nextcloud 33 release on apps.nextcloud.com, 63 have no 34 release.

Concrete failure, with Talk and the Coturn relay turned on: after the upgrade spreed is disabled but custom_apps/spreed remains, so hasNextcloudApp(TALK_APP) passes and the talk-turn oneshot proceeds. occ talk:turn:add then exits non-zero because the app is disabled, allOk stays false, and talkTurnConfigured is never recorded. The relay silently stops being applied; the only signal is a console.error in the service log, and the oneshot re-runs on every subsequent chain build. The three App Commands actions have the same shape via requireNextcloudApp.

The retry behaviour is already acknowledged at startos/main.ts:814. What changes is that a major upgrade makes the disabled-but-present state normal rather than rare, for a window that lasts until the user updates each app.

Checking enablement rather than presence — occ app:list --enabled --output=json, which disableUnstableApps.ts already runs — would distinguish the two states.

Found while reviewing #131.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions