diff --git a/backend/api/EventHandlers/MqttEventHandler.cs b/backend/api/EventHandlers/MqttEventHandler.cs index ac85cc1d5..224f294b4 100644 --- a/backend/api/EventHandlers/MqttEventHandler.cs +++ b/backend/api/EventHandlers/MqttEventHandler.cs @@ -342,7 +342,9 @@ private async void OnIsarMissionUpdate(object? sender, MqttReceivedArgs mqttArgs try { _updateRobotSemaphore.WaitOne(); - await robotService.UpdateCurrentArea(robot.Id, null); + var newProviderToUpdateCurrentArea = GetServiceProvider(); // To ensure that the robot updates the other values correctly, it needs to get a new provider and service + var newRobotServiceToUpdateCurrentArea = newProviderToUpdateCurrentArea.GetRequiredService(); + await newRobotServiceToUpdateCurrentArea.UpdateCurrentArea(robot.Id, null); _updateRobotSemaphore.Release(); } catch (RobotNotFoundException) @@ -355,7 +357,9 @@ private async void OnIsarMissionUpdate(object? sender, MqttReceivedArgs mqttArgs try { _updateRobotSemaphore.WaitOne(); - await robotService.UpdateCurrentMissionId(robot.Id, null); + var newProviderToUpdateCurrentMissionId = GetServiceProvider(); // To ensure that the robot updates the other values correctly, it needs to get a new provider and service + var newRobotServiceToUpdateCurrentMissionId = newProviderToUpdateCurrentMissionId.GetRequiredService(); + await newRobotServiceToUpdateCurrentMissionId.UpdateCurrentMissionId(robot.Id, null); _updateRobotSemaphore.Release(); } catch (RobotNotFoundException)