When a profile/port is updated the old code deletes all objects and creates new ones. This breaks connections set on the objects.
In Card the return type of ports() is changed from QVector<Port*> to QVector<CardPort*>. This probably breaks API/ABI, but the only current user (KDE Connect) is not affected and we don't give ABI guarantees.