{"record":{"id":"df0b07ac01f9e2d1","repo":"nextcloud/all-in-one","slug":"the-additional-options-must-not-be-empty","errorCode":null,"errorMessage":"The additional options must not be empty!","messagePattern":"The additional options must not be empty!","errorType":"validation","errorClass":"InvalidSettingConfigurationException","httpStatus":422,"severity":"warning","filePath":"php/src/Data/ConfigurationManager.php","lineNumber":1085,"sourceCode":"\n        if (!preg_match(\"#^[a-zA-Z_ ]+$#\", $CollaboraDictionaries)) {\n            throw new InvalidSettingConfigurationException(\"The entered dictionaries do not seem to be a valid!\");\n        }\n    }\n\n    /**\n     * Provide an extra method since the corresponding attribute setter prevents setting an empty value.\n     */\n    public function deleteCollaboraDictionaries() : void {\n        $this->set('collabora_dictionaries', '');\n    }\n\n    /**\n     * @throws InvalidSettingConfigurationException\n     */\n    private function validateCollaboraAdditionalOptions(string $additionalCollaboraOptions) : void {\n        if ($additionalCollaboraOptions === \"\") {\n            throw new InvalidSettingConfigurationException(\"The additional options must not be empty!\");\n        }\n\n        if (!preg_match(\"#^--o:#\", $additionalCollaboraOptions)) {\n            throw new InvalidSettingConfigurationException(\"The entered options must start with '--o:'. So the config does not seem to be a valid!\");\n        }\n    }\n\n    /**\n     * Provide an extra method since the corresponding attribute setter prevents setting an empty value.\n     */\n    public function deleteAdditionalCollaboraOptions() : void {\n        $this->set('collabora_additional_options', '');\n    }\n\n    public function listAvailableCommunityContainers() : array {\n        $cc = [];\n        $dir = scandir(DataConst::GetCommunityContainersDirectory());\n        if ($dir === false) {","sourceCodeStart":1067,"sourceCodeEnd":1103,"githubUrl":"https://github.com/nextcloud/all-in-one/blob/6b788eec5e61733cf03ed380a3572e43ae3f11ce/php/src/Data/ConfigurationManager.php#L1067-L1103","documentation":"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).","triggerScenarios":"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).","commonSituations":"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.","solutions":["Provide a real option string starting with '--o:', e.g. '--o:remote_font_config.url=...'.","Use the delete_collabora_additional_options action to remove the options.","Omit the key entirely when the options should stay untouched."],"exampleFix":"// before\ncurl -d 'collabora_additional_options=' https://host/api/webconfig\n\n// after\ncurl -d 'collabora_additional_options=--o:logging.level=warning' https://host/api/webconfig","handlingStrategy":"validation","validationCode":"if (trim($additionalCollaboraOptions) === '') {\n    // use delete_collabora_additional_options instead of an empty value\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Only submit the options key when options are actually set.","Use the delete action to clear the setting."],"tags":["php","nextcloud-aio","input-validation","collabora","configuration"],"backgroundTag":"required-field-empty","analyzedSha":"6b788eec5e61733cf03ed380a3572e43ae3f11ce","analyzedAt":"2026-08-21T05:47:24.382Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}