{"record":{"id":"95137e3e1e8f914e","repo":"nextcloud/all-in-one","slug":"the-entered-options-must-start-with-o-so-the","errorCode":null,"errorMessage":"The entered options must start with '--o:'. So the config does not seem to be a valid!","messagePattern":"The entered options must start with '--o:'\\. So the config does not seem to be a valid!","errorType":"validation","errorClass":"InvalidSettingConfigurationException","httpStatus":422,"severity":"warning","filePath":"php/src/Data/ConfigurationManager.php","lineNumber":1089,"sourceCode":"    }\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) {\n            return $cc;\n        }\n        // Get rid of dots from the scandir command\n        $dir = array_diff($dir, array('..', '.', 'readme.md'));","sourceCodeStart":1071,"sourceCodeEnd":1107,"githubUrl":"https://github.com/nextcloud/all-in-one/blob/6b788eec5e61733cf03ed380a3572e43ae3f11ce/php/src/Data/ConfigurationManager.php#L1071-L1107","documentation":"Thrown by validateCollaboraAdditionalOptions when the value does not start with the literal prefix '--o:'. The whole feature exists to inject Collabora 'cool' config overrides, which always use that prefix, so anything else is treated as a mistake rather than forwarded to the container.","triggerScenarios":"Submitting options formatted as INI ('option=value'), with '--o =' spacing, with single-dash '-o:', with JSON, or pasting a full coolconfig XML block instead of --o: style flags.","commonSituations":"Copying options from Collabora docs that show '--o:' with different quote styles that lose the prefix; users abbreviating the prefix; multiple flags where only some carry the prefix (the check only tests the start of the string, so later flags are unchecked here).","solutions":["Start the value with exactly '--o:' followed by the setting path, e.g. '--o:ssl.enable=false'.","Chain multiple settings exactly as the container accepts them, keeping the leading prefix on the string.","Copy working examples from the AioCTL/form placeholder or Collabora coolconfig documentation."],"exampleFix":"// before\n$options = 'ssl.enable=false';\n\n// after\n$options = '--o:ssl.enable=false';","handlingStrategy":"validation","validationCode":"if (!str_starts_with($additionalCollaboraOptions, '--o:')) {\n    // prefix or reject before submitting\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Template the field so it always begins with '--o:'.","Copy flags from Collabora coolconfig documentation verbatim."],"tags":["php","nextcloud-aio","input-validation","collabora","cli-options"],"backgroundTag":"malformed-cli-option","analyzedSha":"6b788eec5e61733cf03ed380a3572e43ae3f11ce","analyzedAt":"2026-08-21T05:47:24.382Z","schemaVersion":2},"datasetVersion":"2026-08-21T11:28:35.574Z"}