Error: Attempted to modify historical order that transitioned to a live order

I have tried to use getrealtimeorders method to update the historical to live order when i start my strategy, but i’m still getting the error. am i doing something wrong here?

protected override void OnOrderUpdate(Order order, double limitPrice, double stopPrice,
                                  int quantity, int filled, double averageFillPrice,
                                  OrderState orderState, DateTime time, ErrorCode error,
                                  string comment)
{
    // Update historical order references to live ones
    if (State == State.Realtime)
    {
        if (longEntryOrder != null && longEntryOrder.IsBacktestOrder)
            longEntryOrder = GetRealtimeOrder(longEntryOrder);

        if (shortEntryOrder != null && shortEntryOrder.IsBacktestOrder)
            shortEntryOrder = GetRealtimeOrder(shortEntryOrder);

        if (pivotEntryOrder != null && pivotEntryOrder.IsBacktestOrder)
            pivotEntryOrder = GetRealtimeOrder(pivotEntryOrder);
    }

    // Assign entry orders by name
    if (order.Name == "Dynamic Long")
        longEntryOrder = order;
    else if (order.Name == "Dynamic Short")
        shortEntryOrder = order;
    else if (order.Name == "Pivot Long" || order.Name == "Pivot Short")
        pivotEntryOrder = order;

    // Handle entry orders
    if (order.Name == "Dynamic Long" || order.Name == "Dynamic Short" ||
        order.Name == "Pivot Long" || order.Name == "Pivot Short")
    {
        if (order.OrderState == OrderState.Filled)
        {
            // Cancel opposite order when one is filled
            if (order == longEntryOrder && shortEntryOrder != null)
                CancelOrder(shortEntryOrder);
            else if (order == shortEntryOrder && longEntryOrder != null)
                CancelOrder(longEntryOrder);
            else if (order == pivotEntryOrder && (longEntryOrder != null || shortEntryOrder != null))
            {
                CancelOrder(longEntryOrder);
                CancelOrder(shortEntryOrder);
            }

            // Set exit orders
            if (order.Name.Contains("Long"))
            {
                exitOrder = ExitLongLimit(0, true, order.Quantity, averageFillPrice + takeProfit, "Take Profit", "Dynamic Long");
                stopOrder = ExitLongStopMarket(0, true, order.Quantity, averageFillPrice - stopLoss, "Stop Loss", "Dynamic Long");
            }
            else if (order.Name.Contains("Short"))
            {
                exitOrder = ExitShortLimit(0, true, order.Quantity, averageFillPrice - takeProfit, "Take Profit", "Dynamic Short");
                stopOrder = ExitShortStopMarket(0, true, order.Quantity, averageFillPrice + stopLoss, "Stop Loss", "Dynamic Short");
            }
        }
        else if (order.OrderState == OrderState.Cancelled)
        {
            if (order == longEntryOrder)
                longEntryOrder = null;
            else if (order == shortEntryOrder)
                shortEntryOrder = null;
            else if (order == pivotEntryOrder)
                pivotEntryOrder = null;
        }
    }

    // Handle exit orders
    if (order.Name == "Take Profit" || order.Name == "Stop Loss")
    {
        if (order.OrderState == OrderState.Filled)
        {
            pivotTradeActive = false;
            pivotTradeLevel = 0;

            if (order.Name == "Stop Loss")
            {
                consecutiveLosses++;
                if (consecutiveLosses >= 2)
                {
                    tradingPaused = true;
                    lastTradeHour = Times[0][0];
                }
            }
            else
            {
                consecutiveLosses = 0;
            }

            longEntryOrder = null;
            shortEntryOrder = null;
        }
    }
}