nextcloud/all-in-one · warning · InvalidSettingConfigurationException

The additional options must not be empty!

Error message

The additional options must not be empty!

What it means

Thrown by validateCollaboraAdditionalOptions when the collabora_additional_options value is empty. These options are extra command-line flags for the Collabora container; the setter requires a non-empty value starting with '--o:' and clearing is done via deleteAdditionalCollaboraOptions() (delete_collabora_additional_options form key).

Source

Thrown at php/src/Data/ConfigurationManager.php:1085

        if (!preg_match("#^[a-zA-Z_ ]+$#", $CollaboraDictionaries)) {
            throw new InvalidSettingConfigurationException("The entered dictionaries do not seem to be a valid!");
        }
    }

    /**
     * Provide an extra method since the corresponding attribute setter prevents setting an empty value.
     */
    public function deleteCollaboraDictionaries() : void {
        $this->set('collabora_dictionaries', '');
    }

    /**
     * @throws InvalidSettingConfigurationException
     */
    private function validateCollaboraAdditionalOptions(string $additionalCollaboraOptions) : void {
        if ($additionalCollaboraOptions === "") {
            throw new InvalidSettingConfigurationException("The additional options must not be empty!");
        }

        if (!preg_match("#^--o:#", $additionalCollaboraOptions)) {
            throw new InvalidSettingConfigurationException("The entered options must start with '--o:'. So the config does not seem to be a valid!");
        }
    }

    /**
     * Provide an extra method since the corresponding attribute setter prevents setting an empty value.
     */
    public function deleteAdditionalCollaboraOptions() : void {
        $this->set('collabora_additional_options', '');
    }

    public function listAvailableCommunityContainers() : array {
        $cc = [];
        $dir = scandir(DataConst::GetCommunityContainersDirectory());
        if ($dir === false) {

View on GitHub (pinned to 6b788eec5e)

Solutions

  1. Provide a real option string starting with '--o:', e.g. '--o:remote_font_config.url=...'.
  2. Use the delete_collabora_additional_options action to remove the options.
  3. Omit the key entirely when the options should stay untouched.

Example fix

// before
curl -d 'collabora_additional_options=' https://host/api/webconfig

// after
curl -d 'collabora_additional_options=--o:logging.level=warning' https://host/api/webconfig
Defensive patterns

Strategy: validation

Validate before calling

if (trim($additionalCollaboraOptions) === '') {
    // use delete_collabora_additional_options instead of an empty value
}

Prevention

When it happens

Trigger: POSTing the web configuration form with 'collabora_additional_options' present but '' (or a value containing only multibyte characters that pass the emptiness check but fail the prefix regex).

Common situations: Automation that always includes the options key with an empty string; attempting to disable the extra options by blanking the field instead of using the delete button.

Related errors


AI-assisted analysis of nextcloud/all-in-one@6b788eec5e (2026-08-21). Data as JSON: /api/errors/df0b07ac01f9e2d1. Report an issue: GitHub.