getSettingsFilePath() returns true on success, but save() bailed out when it returned true, so volume/mute settings were never persisted and always fell back to defaults (50% output) on boot.