Is It Valid To Call dbus_pending_call_steal_reply before reply is available?

Lawrence D'Oliveiro ldo at
Sun Nov 4 02:27:22 UTC 2018

The documentation for dbus_pending_call_steal_reply()
says “Gets the reply, or returns NULL if none has been received yet.”
However, it looks like trying to steal the reply before one is
available is actually treated as a program bug, triggering a message

    dbus[3481]: arguments to dbus_pending_call_steal_reply() were
    incorrect, assertion "pending->completed" failed in
    file ../../../dbus/dbus-pending-call.c line 733.
    This is normally a bug in some application using the D-Bus library.

Furthermore, it looks like it is possible to get spurious calls to your
pending-call-notify function, so you need to check that the call has
actually completed before trying to retrieve the reply, ignoring the
notification otherwise.

More information about the dbus mailing list