diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php index 8d16a2711e9..4bdf57878d1 100644 --- a/lib/private/TaskProcessing/Manager.php +++ b/lib/private/TaskProcessing/Manager.php @@ -1104,7 +1104,9 @@ class Manager implements IManager { // truncate error message to 1000 characters $task->setErrorMessage(mb_substr($error, 0, 1000)); // truncate error message to 1000 characters - $task->setUserFacingErrorMessage(mb_substr($userFacingError, 0, 1000)); + if ($userFacingError !== null) { + $task->setUserFacingErrorMessage(mb_substr($userFacingError, 0, 1000)); + } $this->logger->warning('A TaskProcessing ' . $task->getTaskTypeId() . ' task with id ' . $id . ' failed with the following message: ' . $error); } elseif ($result !== null) { $taskTypes = $this->getAvailableTaskTypes(); diff --git a/lib/public/TaskProcessing/Exception/ProcessingException.php b/lib/public/TaskProcessing/Exception/ProcessingException.php index ca69766b118..d586c6a823c 100644 --- a/lib/public/TaskProcessing/Exception/ProcessingException.php +++ b/lib/public/TaskProcessing/Exception/ProcessingException.php @@ -10,10 +10,14 @@ declare(strict_types=1); namespace OCP\TaskProcessing\Exception; +use OCP\AppFramework\Attribute\Consumable; + /** * Exception thrown during processing of a task * by a synchronous provider + * * @since 30.0.0 */ +#[Consumable('30.0.0')] class ProcessingException extends \RuntimeException { } diff --git a/lib/public/TaskProcessing/Exception/UserFacingProcessingException.php b/lib/public/TaskProcessing/Exception/UserFacingProcessingException.php index f98444543c4..295867ddedc 100644 --- a/lib/public/TaskProcessing/Exception/UserFacingProcessingException.php +++ b/lib/public/TaskProcessing/Exception/UserFacingProcessingException.php @@ -10,6 +10,8 @@ declare(strict_types=1); namespace OCP\TaskProcessing\Exception; +use OCP\AppFramework\Attribute\Consumable; + /** * Exception thrown during processing of a task * by a synchronous provider with the possibility to set a user-facing @@ -17,6 +19,7 @@ namespace OCP\TaskProcessing\Exception; * * @since 33.0.0 */ +#[Consumable('33.0.0')] class UserFacingProcessingException extends ProcessingException { /** @@ -30,7 +33,7 @@ class UserFacingProcessingException extends ProcessingException { string $message = '', int $code = 0, ?\Throwable $previous = null, - private ?string $userFacingMessage = null + private ?string $userFacingMessage = null, ) { parent::__construct($message, $code, $previous); } diff --git a/lib/public/TaskProcessing/IManager.php b/lib/public/TaskProcessing/IManager.php index efe4c4879aa..1a3689385cf 100644 --- a/lib/public/TaskProcessing/IManager.php +++ b/lib/public/TaskProcessing/IManager.php @@ -10,6 +10,7 @@ declare(strict_types=1); namespace OCP\TaskProcessing; +use OCP\AppFramework\Attribute\Consumable; use OCP\Files\File; use OCP\Files\GenericFileException; use OCP\Files\NotPermittedException; @@ -25,6 +26,7 @@ use OCP\TaskProcessing\Exception\ValidationException; * without known which providers are installed * @since 30.0.0 */ +#[Consumable('30.0.0')] interface IManager { /**