Virtual server upgrade does not enable new features

Continuing my exploration of Virtualmin GPL 5.0.gpl on CentOS 7.2.1511.

In System Settings => Features and Plugins I made sure that Subversion and Git repositories and SQLite Databases were all enabled on both the left side (enabled/disabled) and the right side (default or not).

I have account plan B in which Allowed virtual server features are almost all checked, including Subversion and Git repositories and SQLite Databases.

I see an account in whose Allowed virtual server features the following three are unchecked: Subversion and Git repositories and SQLite Databases. Right now this account is on the B plan, so I’m not sure why they are unchecked. I lost track of the changes I’ve been making.

But anyway, to correct the missing features, I first change this account to the Default Plan. Then I change it back to the B plan, but before I do, I make sure that the Apply limits from new plan if changed box is checked.

So, when I change the account plan for this user back to B, I’m hoping that he will have a virtual server with the three features I mentioned above (i.e., Subversion and Git repositories and SQLite Databases) all enabled. After I click on the Save Virtual Server button, and go back to check, I see that the poor virtual server user still doesn’t have access to these features.

So it appears that if a customer signs up for plan A, and then upgrades to plan B, he doesn’t automatically get the new features for which he wanted the upgrade. Instead, we must manually select all the features that go with the upgraded plan.

Since the checkbox said “Apply limits from new plan if changed” and not “Apply limits and features from new plan if changed”, I can’t strictly claim it’s a bug. But in practice it’s like one. I would expect account upgrades to add the new features of the new plan, and downgrades to subtract features missing in the new plan.

(Edited to fix typo, changed “now” to “not”.)

It is not a bug, it is indeed safer to manually update the plans for existing virtual server.
Take this for example…
User A have SQL Lite and using Plan C… later on… you decided that Plan C won’t have SQLite and the Plan propagates… you now have a messed UP User A virtual server since his SQLite will suddenly disappear

That’s a different scenario from the one I’m describing.