nextcloud/all-in-one · warning · InvalidSettingConfigurationException
The timezone must not be empty!
Error message
The timezone must not be empty!
What it means
Thrown by validateTimezone when the timezone string is empty. The validator is called from the timezone attribute setter used when the web form posts a 'timezone' value; an empty string would otherwise clear the setting, so deletion has its own dedicated path (deleteTimezone via the delete_timezone form key).
Source
Thrown at php/src/Data/ConfigurationManager.php:1022
}
public function getAdditionalBackupDirectoriesArray() : array {
$additionalBackupDirectories = $this->getAdditionalBackupDirectoriesString();
$additionalBackupDirectoriesArray = explode("\n", $additionalBackupDirectories);
$additionalBackupDirectoriesArray = array_unique($additionalBackupDirectoriesArray, SORT_REGULAR);
return $additionalBackupDirectoriesArray;
}
public function isDailyBackupRunning() : bool {
return file_exists(DataConst::GetDailyBackupBlockFile());
}
/**
* @throws InvalidSettingConfigurationException
*/
private function validateTimezone(string $timezone) : void {
if ($timezone === "") {
throw new InvalidSettingConfigurationException("The timezone must not be empty!");
}
if (!preg_match("#^[a-zA-Z0-9_\-\/\+]+$#", $timezone)) {
throw new InvalidSettingConfigurationException("The entered timezone does not seem to be a valid timezone!");
}
}
/**
* Provide an extra method since our `timezone` attribute setter prevents setting an empty timezone.
*/
public function deleteTimezone() : void {
$this->set('timezone', '');
}
public function shouldDomainValidationBeSkipped(bool $skipDomainValidation) : bool {
if ($skipDomainValidation || getenv('SKIP_DOMAIN_VALIDATION') === 'true') {
return true;
}View on GitHub (pinned to 6b788eec5e)
Solutions
- Send a real IANA timezone identifier such as 'Europe/Berlin' in the timezone field.
- To unset the timezone, POST 'delete_timezone' instead of an empty timezone value.
- Omit the timezone key entirely when it should not change.
Example fix
// before curl -d 'timezone=' https://host/api/webconfig // after curl -d 'timezone=Europe/Berlin' https://host/api/webconfig // or to remove it: curl -d 'delete_timezone=1' https://host/api/webconfig
Defensive patterns
Strategy: validation
Validate before calling
if ($timezone === '') {
// use delete_timezone action instead of posting an empty value
} Prevention
- Keep a curated list of IANA identifiers in the picker so empty is unrepresentable.
- Separate 'unset' (delete key) from 'set' (value key) in automation.
When it happens
Trigger: POSTing the web configuration form with 'timezone' present but '' instead of using the separate delete_timezone action.
Common situations: Automation that includes every form key with empty defaults; a timezone picker that submits an empty value when the browser blocks its assets.
Related errors
- The entered timezone does not seem to be a valid timezone!
- Domain must contain at least one dot!
- Domain must not contain slashes!
- Domain must not contain colons!
- Please enter a path or a remote repo url!
AI-assisted analysis of nextcloud/all-in-one@6b788eec5e (2026-08-21).
Data as JSON: /api/errors/b321eae2fc562b48.
Report an issue: GitHub.