# Alternative ServiceControl v4 upgrade option
The [standard guide to upgrade ServiceControl from 4 to 5](/servicecontrol/upgrades/4to5/index.md) assumes that all failed messages can be retried without side effects. In cases where this cannot be confirmed, the approach below can be used to upgrade ServiceControl v4.
> [!NOTE]
> This setup results in **two** separate error instances.
> ServicePulse *cannot* show data from both simultaneously.
> [ServicePulse can be reconfigured to connect to another instance](/servicepulse/host-config.md#configuring-connections-via-the-servicepulse-ui).
## Monitor Instances
Monitor instances are stateless and can be safely reinstalled elsewhere:
- Remove the old instance from (virtual) machine 1.
- Install the same monitor instance name on (virtual) machine 2.
No special migration steps required.
## Audit Instances
Audit v4 instances do **not** need to be migrated. They can remain active until the retention period expires.
To stop ingesting audit messages:
1. Stop and **disable** the old audit instance in *Windows Services*.
2. Add the following setting to `servicecontrol.audit.exe.config`:
```xml
```
3. Start and **enable** the instance again.
4. Confirm it's no longer ingesting by checking that the audit queue is building up.
## Error Instances
The error instance needs to be prevented from being ingested, renamed, and replaced.
Steps:
1. [Stop and disable the v4 error instance](#error-instances-stop-and-disable-v4-error-instance)
2. [Prevent error queue ingestion](#error-instances-configure-to-stop-ingestion-of-error-queue)
3. [Change the instance’s queue name](#error-instances-change-servicecontrol-instance-queue)
4. [Run setup](#error-instances-run-setup)
5. [Enable and start the v4 error instance](#error-instances-enable-and-start-v4-error-instance)
6. [Verify the instance](#error-instances-verify-instance-is-running-without-issues)
7. [Add a new error instance](#error-instances-add-new-error-instance)
### Stop and Disable v4 Error Instance
1. Open *Windows Services*.
2. Locate the error instance, right-click → **Properties**.
3. Set `Startup type` to `Disabled` → Apply.
4. Click **Stop**.
### Configure to Stop Ingestion of Error Queue
1. Locate the instance folder (via ServiceControl Management Utility → *Installation location* → 📁 **Browse...**)
2. Open `servicecontrol.exe.config` in an elevated text editor
3. Add:
```xml
```
4. Save the file
### Change ServiceControl Instance Queue
> [!NOTE]
> The swapping of the instance names is only needed if **heartbeats** are used to avoid requiring to update the configuration of all endpoints.
1. Open **regedit** and navigate to:
```
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
```
2. Find the key representing the ServiceControl service
3. Export it as a backup
4. Locate `ImagePath`, note the `--serviceName` argument
5. Modify the service name to a unique value, e.g.:
```
--serviceName=particular.servicecontrol_v4
```
### Run Setup
1. Open an elevated command prompt
2. Navigate to the install folder, e.g.:
```
C:\Program Files (x86)\Particular Software\Particular.ServiceControl
```
3. Run:
```
servicecontrol.exe -s --serviceName=particular.servicecontrol_v4
```
### Enable and Start v4 Error Instance
1. Open *Windows Services*
2. Locate the error instance, right-click → **Properties**
3. Set `Startup type` to `Automatic` → Apply
4. Click **Start**
### Verify Instance is Running Without Issues
1. Open the log folder (via ServiceControl Management Utility → *Log Path* → 📁 **Browse...**)
2. Open the latest `logfile.{YYYY-MM-DD}`
3. Scroll to the end and ensure no errors are present
### Add New Error Instance
> [!NOTE]
> Use the **original** service name (before the rename) for this new instance.
1. Add a new error instance as usual (on the same machine or a new one)
2. Configure it as needed to take over ingestion