diff --git a/data-model/src/main/java/org/alfresco/service/cmr/repository/RestoreInProgressException.java b/data-model/src/main/java/org/alfresco/service/cmr/repository/RestoreInProgressException.java
new file mode 100644
index 0000000000..2dbf75cda3
--- /dev/null
+++ b/data-model/src/main/java/org/alfresco/service/cmr/repository/RestoreInProgressException.java
@@ -0,0 +1,62 @@
+/*
+ * #%L
+ * Alfresco Data model classes
+ * %%
+ * Copyright (C) 2005 - 2021 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
+package org.alfresco.service.cmr.repository;
+
+import org.alfresco.api.AlfrescoPublicApi;
+import org.alfresco.error.AlfrescoRuntimeException;
+import org.alfresco.service.Experimental;
+
+/**
+ * Content Restoration in progress
+ *
+ * @author David Edwards
+ */
+@AlfrescoPublicApi
+@Experimental
+public class RestoreInProgressException extends AlfrescoRuntimeException
+{
+ private static final long serialVersionUID = 5483215922384016269L;
+
+ public RestoreInProgressException(String msgId)
+ {
+ super(msgId);
+ }
+
+ public RestoreInProgressException(String msgId, Object[] msgParams)
+ {
+ super(msgId, msgParams);
+ }
+
+ public RestoreInProgressException(String msgId, Throwable cause)
+ {
+ super(msgId, cause);
+ }
+
+ public RestoreInProgressException(String msgId, Object[] msgParams, Throwable cause)
+ {
+ super(msgId, msgParams, cause);
+ }
+}
diff --git a/remote-api/src/main/java/org/alfresco/rest/framework/core/exceptions/RestoreInProgressException.java b/remote-api/src/main/java/org/alfresco/rest/framework/core/exceptions/RestoreInProgressException.java
new file mode 100644
index 0000000000..438421e415
--- /dev/null
+++ b/remote-api/src/main/java/org/alfresco/rest/framework/core/exceptions/RestoreInProgressException.java
@@ -0,0 +1,64 @@
+/*
+ * #%L
+ * Alfresco Remote API
+ * %%
+ * Copyright (C) 2005 - 2021 Alfresco Software Limited
+ * %%
+ * This file is part of the Alfresco software.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ * #L%
+ */
+package org.alfresco.rest.framework.core.exceptions;
+
+import org.alfresco.service.Experimental;
+
+@Experimental
+public class RestoreInProgressException extends ApiException
+{
+ public static String DEFAULT_MESSAGE_ID = "framework.exception.RestoreInProgress";
+
+ public RestoreInProgressException()
+ {
+ super(DEFAULT_MESSAGE_ID);
+ }
+
+ public RestoreInProgressException(String message)
+ {
+ this(DEFAULT_MESSAGE_ID, message);
+ }
+
+ private RestoreInProgressException(String msgId, String message)
+ {
+ super(msgId, message);
+ }
+
+ public RestoreInProgressException(Throwable cause)
+ {
+ this(DEFAULT_MESSAGE_ID, cause.getLocalizedMessage(), cause);
+ }
+
+ public RestoreInProgressException(String message, Throwable cause)
+ {
+ this(DEFAULT_MESSAGE_ID, message, cause);
+ }
+
+ private RestoreInProgressException(String msgId, String message, Throwable cause)
+ {
+ super(msgId, message, cause);
+ }
+}
diff --git a/remote-api/src/main/resources/alfresco/public-rest-context.xml b/remote-api/src/main/resources/alfresco/public-rest-context.xml
index 24829a7856..8b5aeb23df 100644
--- a/remote-api/src/main/resources/alfresco/public-rest-context.xml
+++ b/remote-api/src/main/resources/alfresco/public-rest-context.xml
@@ -175,6 +175,7 @@
+