Experimental feature requires users to set system flag before install

Hi, I have a snap (Calaboka) that uses the experimental feature User Daemons. During the past 2.5 years that the app has been available, over 1000 active users have been able to install and use it without problems. Recently (this past week) I got a report that it’s no longer possible for a user to install this snap without first setting the system flag:

snap set system experimental.user-daemons=true

I tried it myself on my personal system and confirmed the above.

Has anything changed in snapd recently that now makes it a requirement for users to set this system flag prior to installing an app that depends on User Daemons? Is there anything that can be done to improve the user experience in this case (i.e., not require users to set the flag, like it used to be)?

Thank you in advance.

1 Like

I’m surprised this wasn’t always the case, as far as I’m aware there’s exceptions built into snapd for certain snaps being able to use user daemons without the experimental flag, but outside of hardcoded exceptions, what you’re describing sounds to me like the expected case.

Is this potentially a case of people have been enabling this feature but this user is the first that’s mentioned it? As a snap author I wouldn’t be surprised if you’d turned it on years ago and since forgotten.

I’m not sure. There’s over 1000 users and no one’s complained until one person recently. So I don’t really know. The error message doesn’t really show the user exactly how to turn on the flag, so unless the user does some research I’m not sure all of them would figure it out.

Is there any chance I can get an exception for my snap (Calaboka)? It’s been around for over 2 years. It depends on User Daemons since inception.

1 Like

It’s unfortunately something that’s hard to ask for, it’s not a store exception/assertion like most other exceptions, but literally part of the snapd build:

https://github.com/snapcore/snapd/blob/fdc222fc37a00c502189b54a46dbb6327eb5bf9c/overlord/snapstate/snapstate.go#L1150

I think though there’s been movement on user daemons which may mean that they’re soon to be considered non-experimental, so it’s possible you might not be waiting too long before this stops being a problem for you; but I’d let someone involved in that work comment further.

1 Like

Maybe people are following popular online guides like this one: How to silence Spotify Ads on Linux | by The Software Line | Medium

Which, weirdly doesn’t mention the need to enable that experimental feature. I can’t imagine people discover it by themselves.

Maybe you have a thousand installs of people not actually using it? That would be a bit sad.

2 Likes

I really hope a failed/denied install (due to the experimental feature flag not being set) doesn’t count towards the usage statistics. Otherwise you might be right. If people installed successfully, then the app is self guiding and instructs them how to set up the correct snap permissions. There are a few reviews in the store, so some people are definitely using it.

And the user who wrote that guide (I have no idea who that is) obviously got it working and didn’t include a step to set the flag… another reason why I didn’t think the flag was being checked on the user side :man_shrugging:.

Another point I’d like to make is that I tested this snap early on, on over 10 different variants of linux using separate VMs. I never had to set this flag. I remember I posted about it:

2 Likes

Hi there, I was using Calaboka without this flag, until I tried to install it on my new machine, It shows the message :

error: cannot install "calaboka": experimental feature disabled - test it by setting
       'experimental.user-daemons' to true

So I can say with confidence that it was all active users, but the recent version of snap now show it. Running:

snap set system experimental.user-daemons=true

Solves the issue as stated before. Nice snap btw, would never use spotify without it, you are a god <3

1 Like

I recently updated the snap description and support page to include the instruction to set the experimental flag. But that was only days ago. This wasn’t a problem until apparently last week. I seriously hope user daemons moves out of experimental status soon. Thanks for using my snap, I’m glad you like it.

1 Like