So looking at the Qt code, the QDBusPendingCallPrivate class is ref counted, where most references will be owned by a QDBusPendingCall instance (or a subclass). It has one additional reference that is managed manually in the QDBusConnectionPrivate code.
I suspect it is this last reference that is getting lost somewhere, but I've got no idea why I haven't noticed something similar in other pieces of code invoking asynchronous methods with QtDBus.
So looking at the Qt code, the QDBusPendingCal lPrivate class is ref counted, where most references will be owned by a QDBusPendingCall instance (or a subclass). It has one additional reference that is managed manually in the QDBusConnection Private code.
I suspect it is this last reference that is getting lost somewhere, but I've got no idea why I haven't noticed something similar in other pieces of code invoking asynchronous methods with QtDBus.