A list of all the possible error codes produced by dbus-deviation, along with potential causes, what problems result, and how to avoid them.
Error code | Compatibility | Description |
---|---|---|
duplicate-interface | error | Two D-Bus interfaces with the same name were defined in a single API file. One of the interfaces may be misnamed. |
duplicate-method | error | Two methods with the same name were defined in a single D-Bus interface. One of the methods may be misnamed. |
duplicate-property | error | Two properties with the same name were defined in a single D-Bus interface. One of the properties may be misnamed. |
duplicate-signal | error | Two signals with the same name were defined in a single D-Bus interface. One of the signals may be misnamed. |
missing-attribute | error | An XML node in the API file was missing a required attribute. Typically, a ‘name’ attribute is required — check the Introspection Data Format specification. |
unknown-node | error | An XML node in the API file was not recognized. Check the Introspection Data Format specification. |
Error code | Compatibility | Description |
---|---|---|
argument-added | backwards-incompatible | A new argument was added to a method or signal. This is backwards incompatible as all existing call sites and signal handlers need to be changed to handle it. |
argument-direction-changed-*-* | backwards-incompatible | An argument’s direction was changed from ‘in’ to ‘out’ or vice-versa. This is backwards incompatible as all existing call sites and signal handlers need to be changed to write the argument when they would have previously read it, or vice-versa. |
argument-name-changed | info | An argument changed name. This is not an API break, as arguments are looked up by index. Note that it is an API break if two arguments have swapped places though. You should check that the name change is not accompanied by a change in the semantics of the argument. |
argument-removed | backwards-incompatible | An argument was removed from a method or signal. This is backwards incompatible as all existing call sites and signal handlers need to be changed to stop using it. |
argument-type-changed | backwards-incompatible | An argument changed type. This is backwards incompatible as all existing call sites and signal handlers need to be changed to use the new type. This might have been caused by another argument being added or removed; so check other error messages too. |
c-symbol-changed | info | The C symbol corresponding to a D-Bus API changed name. This does not affect stability of the D-Bus API, but may change the API of any generated C bindings. You should check whether that is the case. |
deprecated | info | A D-Bus API has been marked as deprecated using the org.freedesktop.DBus.Deprecated annotation. The API can still be used, but you might want to port applications away from using it, to use the documented replacement instead. |
ecs-changed-true-false, ecs-changed-true-const, ecs-changed-invalidates-false, ecs-changed-invalidates-const | forwards-incompatible | A D-Bus property which previously emitted the org.freedesktop.DBus.Properties.PropertiesChanged signal when its value changed will no longer emit that signal. It either now has a constant value (for the lifetime of the D-Bus object containing the property), or simply is no longer guaranteed to emit the signal when its value changes. Applications which previously handled notifications for this property will no longer receive them, but will otherwise continue to function. |
ecs-changed-false-true, ecs-changed-false-invalidates, ecs-changed-const-true, ecs-changed-const-invalidates | backwards-incompatible | A D-Bus property which previously did not emit the org.freedesktop.DBus.Properties.PropertiesChanged signal will now emit that signal when its value changes. The signal may contain the updated value of the property, or may simply mark the property as ‘invalidated’. Applications which previously assumed the property had a constant value should be changed to handle notifications for it. |
ecs-changed-true-invalidates | backwards-incompatible | A D-Bus property which previously emitted its updated value in the org.freedesktop.DBus.Properties.PropertiesChanged signal when its value changed will no longer include the updated value, and will instead notify the property as ‘invalidated’. Applications which expected the property to be listed in the changed_properties argument of the org.freedesktop.DBus.Properties.PropertiesChanged signal should be changed to look in the invalidated_properties argument — or to look in both, for maximum compatibility. |
ecs-changed-invalidates-true | backwards-incompatible | A D-Bus property which previously did not emit its updated value in the org.freedesktop.DBus.Properties.PropertiesChanged signal when its value changed will now include the updated value, and will no longer notify the property as ‘invalidated’. Applications which expected the property to be listed in the invalidated_properties argument of the org.freedesktop.DBus.Properties.PropertiesChanged signal should be changed to look in the changed_properties argument — or to look in both, for maximum compatibility. |
ecs-changed-const-false | backwards-incompatible | A D-Bus property which was previously marked as constant, with a value which did not change throughout the lifetime of the containing D-Bus object, is now marked as non-constant. Its value may now change; however, such changes will not be notified using the org.freedesktop.DBus.Properties.PropertiesChanged signal. Applications should be changed to re-query the property when appropriate, and to no longer assume that its value is constant. |
ecs-changed-false-const | forwards-incompatible | A D-Bus property which was previously marked as non-constant, is now marked as constant, with a value which cannot change throughout the lifetime of the containing D-Bus object. The property will continue to not be notified through the org.freedesktop.DBus.Properties.PropertiesChanged signal. Applications may be changed to assume the property’s value is constant, and hence no longer need to re-query its value after the initial query. |
interface-added | forwards-incompatible | A new D-Bus interface was added to the API, and can now be used in applications. You must bump your application’s dependency on the D-Bus API version, or check that the new interface is implemented at runtime before using it, otherwise your application will not run correctly against older versions of the D-Bus service. |
interface-removed | backwards-incompatible | A D-Bus interface was removed from the API, and can no longer be used in applications. This is a backwards-incompatible change, and all applications which were using that interface must be ported away from it, or have runtime version checks added so they only use the interface when the D-Bus service implements it at runtime. |
method-added | forwards-incompatible | A new method was added to a D-Bus interface in the API, and can now be used in applications. You must bump your application’s dependency on the D-Bus API version, or check that the new method is available at runtime before using it, otherwise your application will not run correctly against older versions of the D-Bus service. |
method-removed | backwards-incompatible | A method was removed from a D-Bus interface in the API, and can no longer be used in applications. This is a backwards-incompatible change, and all applications which were using that method must be ported away from it, or have runtime version checks added so they only use the method when the D-Bus service implements it at runtime. |
property-access-changed-read-readwrite, property-access-changed-write-readwrite | forwards-incompatible | A property changed access flags from ‘read’ or ‘write’ to ‘readwrite’, making it less restrictive. Applications may now get and set the property, which was not possible before. This is a forwards-incompatible change, so any applications which start using the lessened restrictions should gracefully handle failure to use them, so that they continue to work with older versions of the D-Bus service. |
property-access-changed-read-write, property-access-changed-write-read, property-access-changed-readwrite-read, property-access-changed-readwrite-write | backwards-incompatible | A property changed access flags to be more restrictive. This is a backwards incompatible change, and applications will need to be changed to stop accessing the property how they were before, or to gracefully handle failure of set or get calls on the property. |
property-added | forwards-incompatible | A new property was added to a D-Bus interface in the API, and can now be used in applications. You must bump your application’s dependency on the D-Bus API version, or check that the new property is available at runtime before using it, otherwise your application will not run correctly against older versions of the D-Bus service. |
property-removed | backwards-incompatible | A property was removed from a D-Bus interface in the API, and can no longer be used in applications. This is a backwards-incompatible change, and all applications which were using that property must be ported away from it, or have runtime version checks added so they only use the property when the D-Bus service implements it at runtime. |
property-type-changed | backwards-incompatible | A property changed type. This is backwards incompatible as all existing set and get sites need to be changed to use the new type. |
signal-added | forwards-incompatible | A new signal was added to a D-Bus interface in the API, and can now be connected to in applications. You must bump your application’s dependency on the D-Bus API version, or check that the new signal is available at runtime before connecting to it, otherwise your application will not run correctly against older versions of the D-Bus service. |
signal-removed | backwards-incompatible | A signal was removed from a D-Bus interface in the API, and can no longer be used in applications. This is a backwards-incompatible change, and all applications which were connecting to that signal must be ported away from it, or have runtime version checks added so they only connect to the signal when the D-Bus service implements it at runtime. |
undeprecated | info | A D-Bus API which was previously marked as deprecated using the org.freedesktop.DBus.Deprecated annotation is no longer marked as deprecated. You may start using it in applications again, although you should check whether the un-deprecation was intentional first. |
If you have found a bug on this page, have found missing documentation, or if some of the documentation is unclear, please file a bug.