can't remove widget from parent after parent's detach/attach operation

It’s an inventory system. The inventory bar is draggable.

The layout is like this:

main_panel(hud)
    inventory_bar(user widget)
        (some wraps)
            grid_panel
                inventory_slot(user widget)

goal: to remove inventory_slot from parent(grid_panel)

It works without dragging, but after inventory_bar being dragged, it fails.
I have tried “remove from parent” and “remove child”, both failed.

dragging process:

  1. drag inventory_bar detected
  2. create drag
  3. remove inventory_bar from parent(main_panel)
  4. drop to main_panel
  5. main_panel add_child_to_canvas(inventory_bar)

The whole inventory_bar is dragged and dropped perfectly, but inventory_slot can’t be removed after dragging.

The parent-child relationship is maintained well. I can print out inventory_slot’s parent(grid_panel) but can’t remove the slot from it.

I think the culprit is #3/#5. but why?

Thanks!