# restore-in-progress

A **restore is running**, which refuses reads and writes until it has finished.

- **Routes:** `write-events`, `read-events`, `observe-events`, `run-eventql-query`, `register-event-schema`, `read-subjects`, `read-event-types`, `read-event-type`, `create-backup`, `restore-backup`, `import-events`, `export-events`, and `verify-store`
- **Description:** `restore is in progress: try again once it has finished`
- **Details:** **`operation`**, the operation that the database refuses: `read`, `write`, or `observe`.

## Why It Happens

While it **[restores a backup](/docs/eventsourcingdb/backup-and-restore)** or **[imports events](/docs/eventsourcingdb/api/import-events)**, through the routes `restore-backup` and `import-events`, EventSourcingDB **keeps every other request away** from the data, readers and writers alike, since what they would read or change is being replaced. This includes a second restore or import. An observation that runs when a restore begins **ends with this error**, after the events it has sent so far, and so can a read that is under way.

An **[export](/docs/eventsourcingdb/api/export-events)** that a restore refuses at its start answers with this error as a single envelope, with the content type `application/json`, since an export carries no error items. Some operations **wait for the restore** instead of being refused: an **[audit](/docs/eventsourcingdb/auditing-the-event-store)**, from its start on, and, once they have begun, a backup, an export, a verification of the store, and the check of the stored events that registering a schema makes. If the database refuses a request for another reason as well, that reason is reported instead, such as **[`store-read-only`](/docs/eventsourcingdb/errors/store-read-only)** for a write in read-only mode.

## How to Fix It

Wait until the restore has finished, then send the request again; **it can succeed then**. An observation that ended this way has to be started anew, since the restore has replaced the events it was reading.

## Example

To read the events of `/books/42` while a backup is being restored, EventSourcingDB answers with this error, as a line of the stream, and then ends the stream with its `end` item:

```json
{
  "type": "error",
  "data": {
    "code": "https://docs.eventsourcingdb.io/errors/restore-in-progress",
    "description": "restore is in progress: try again once it has finished",
    "details": {
      "operation": "read"
    }
  }
}
```
