nextcloud/all-in-one · warning · InvalidSettingConfigurationException
The daily backup time must not be empty!
Error message
The daily backup time must not be empty!
What it means
Thrown by ConfigurationManager::setDailyBackupTime when the time string is empty. The method is invoked from the web UI form (daily_backup_time field) and writes the chosen time plus flags for automatic updates and success notifications into the daily backup time file; an empty value would disable the schedule silently, so it is rejected.
Source
Thrown at php/src/Data/ConfigurationManager.php:904
}
return trim((string)file_get_contents(DataConst::GetBackupPublicKey()));
}
public function getCollaboraSeccompPolicy() : string {
$defaultString = '--o:security.seccomp=';
if (!$this->collaboraSeccompDisabled) {
return $defaultString . 'true';
}
return $defaultString . 'false';
}
/**
* @throws InvalidSettingConfigurationException
*/
public function setDailyBackupTime(string $time, bool $enableAutomaticUpdates, bool $successNotification) : void {
if ($time === "") {
throw new InvalidSettingConfigurationException("The daily backup time must not be empty!");
}
if (!preg_match("#^[0-1][0-9]:[0-5][0-9]$#", $time) && !preg_match("#^2[0-3]:[0-5][0-9]$#", $time)) {
throw new InvalidSettingConfigurationException("You did not enter a correct time! One correct example is '04:00'!");
}
if ($enableAutomaticUpdates === false) {
$time .= PHP_EOL . 'automaticUpdatesAreNotEnabled';
} else {
$time .= PHP_EOL;
}
if ($successNotification === false) {
$time .= PHP_EOL . 'successNotificationsAreNotEnabled';
} else {
$time .= PHP_EOL;
}
file_put_contents(DataConst::GetDailyBackupTimeFile(), $time);
$this->dailyBackupFileCache = '';View on GitHub (pinned to 6b788eec5e)
Solutions
- Send a valid HH:MM string such as '04:00' in the daily_backup_time field.
- Use the dedicated delete path (delete_daily_backup_time) when the intent is to remove the schedule instead of setting it.
- Ensure your client is not sending the key with an empty value when you do not intend to change the backup time.
Example fix
// before curl -d 'daily_backup_time=' https://host/api/webconfig // after curl -d 'daily_backup_time=04:00' https://host/api/webconfig
Defensive patterns
Strategy: validation
Validate before calling
if ($dailyBackupTime === '') {
// use delete_daily_backup_time action or block the request
} Prevention
- Only send daily_backup_time when a real time is chosen.
- Use the dedicated delete action to unset the schedule.
When it happens
Trigger: POST to the web configuration endpoint with 'daily_backup_time' present but '' (the controller only routes the field into setDailyBackupTime when the key exists in the parsed body).
Common situations: Curl/automation omitting the time value while sending the key; a cleared input still being serialized by the form; JS sending the empty string after the picker failed to initialize.
Related errors
- You did not enter a correct time! One correct example is '04
- You entered unallowed characters! Problematic is ${entry}
- Domain must contain at least one dot!
- Domain must not contain slashes!
- Domain must not contain colons!
AI-assisted analysis of nextcloud/all-in-one@6b788eec5e (2026-08-21).
Data as JSON: /api/errors/dbad3dc6e9e67397.
Report an issue: GitHub.