# IRPCBackgroundOperationsAdmin.WaitForBackgroundOperationCompletion

Location: [gRPC API](https://developer.m-files.com/APIs/gRPC-API/index.md) > [Administration API](https://developer.m-files.com/APIs/gRPC-API/admin/index.md) > [Background operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCBackgroundOperationsAdmin/index.md)

HTML version: https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCBackgroundOperationsAdmin/WaitForBackgroundOperationCompletion/

Badges: `Administration API / specialized` `admin` `session` `idempotent`

Waits until a background operation has finished, or stops it.

- **Service:** [Background operations](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCBackgroundOperationsAdmin/index.md) `MFiles.IRPCBackgroundOperationsAdmin`
- **gRPC method:** `/MFiles.IRPCBackgroundOperationsAdmin/WaitForBackgroundOperationCompletion`
- **HTTP (mf-http-grpc):** `POST /grpc/v1/wait-for-background-operation-completion`
- **Request:** [`WaitForBackgroundOperationCompletionRequest`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCBackgroundOperationsAdmin/WaitForBackgroundOperationCompletion/index.md#request)
- **Response:** [`WaitForBackgroundOperationCompletionResponse`](https://developer.m-files.com/APIs/gRPC-API/Reference/MFiles.IRPCBackgroundOperationsAdmin/WaitForBackgroundOperationCompletion/index.md#response)
- **Book and level:** Administration API, specialized
- **Kind:** admin
- **Session:** Required: the session ID from LogIn in the mfiles-session-id-bin metadata.
- **Idempotent:** yes
- **Returns metadata structure version:** no
- **Streaming:** none (unary)

<a id="remarks"></a>

## Remarks

- Returns immediately if the operation is not running. Otherwise blocks until it finishes; set
  a deadline on the call.
- With `force_stop`, the operation is asked to stop as soon as possible.
- Requires a vault session and the vault right `change_metadata_structure`.

<a id="request"></a>

## Request: WaitForBackgroundOperationCompletionRequest

A structure that specifies the request type for the corresponding method.

> Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

| Field | Type | Description |
|---|---|---|
| `background_operation_id` | [`BackgroundOperationID`](https://developer.m-files.com/APIs/gRPC-API/Reference/Messages/MFiles.BackgroundOperationID/index.md) | The operation to wait for. |
| `background_operation_id.type` | [`BackgroundOperationType`](https://developer.m-files.com/APIs/gRPC-API/Reference/Enums/MFiles.BackgroundOperationType/index.md) | Operation type. Values: `BACKGROUND_OPERATION_TYPE_UNKNOWN` (0), `BACKGROUND_OPERATION_TYPE_INDEX_METADATA` (1), `BACKGROUND_OPERATION_TYPE_REFRESH_EXTERNAL_OBJECT_TYPE` (2), `BACKGROUND_OPERATION_TYPE_REFRESH_EXTERNAL_LOCATION` (3), `BACKGROUND_OPERATION_TYPE_PERFORM_OCR_TASK` (4), `BACKGROUND_OPERATION_TYPE_RUN_PERFORMANCE_MEASUREMENTS` (5), `BACKGROUND_OPERATION_TYPE_CLEAN_UP_ACL_DEPENDENCY_SETS` (6). |
| `background_operation_id.id` | `int32` | Specifies an ID for the operation (e.g. object type ID). |
| `force_stop` | `bool` | True to stop the operation as soon as possible, false to let it finish. |

<a id="response"></a>

## Response: WaitForBackgroundOperationCompletionResponse

No fields.
