# IJournaledStateManager.RegisterStateMachine(string, IStateMachine)

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstatemanager/) | [Methods](/orleans/docs/api/csharp/microsoft.orleans.journaling/orleans.journaling.ijournaledstatemanager/methods/)

```csharp
public abstract void RegisterStateMachine(string name, IStateMachine stateMachine)
```

Registers a state machine before initialization begins.

### Parameters

- `name` (`string`): The state machine's stable identifier.
- `stateMachine` (`IStateMachine`): The state machine instance to register.

### Exceptions

- `System.InvalidOperationException`: Initialization has begun or the name is already registered.
