DBusError#

Added in version 2.26.

class DBusError#

Error codes for the %G_DBUS_ERROR error domain.

Methods#

class DBusError
encode_gerror() str#

Creates a D-Bus error name to use for error.

If error matches a registered error (see register_error), the corresponding D-Bus error name will be returned.

Otherwise the a name of the form org.gtk.GDBus.UnmappedGError.Quark._ESCAPED_QUARK_NAME.Code_ERROR_CODE will be used. This allows other GDBus applications to map the error on the wire back to a Error using new_for_dbus_error.

This function is typically only used in object mappings to put a Error on the wire. Regular applications should not use it.

Added in version 2.26.

get_remote_error() str | None#

Gets the D-Bus error name used for error, if any.

This function is guaranteed to return a D-Bus error name for all Errors returned from functions handling remote method calls (for example, call_finish) unless strip_remote_error has already been used on error.

Added in version 2.26.

is_remote_error() bool#

Checks if error represents an error received via D-Bus from a remote peer.

If so, use get_remote_error to get the name of the error.

Added in version 2.26.

new_for_dbus_error(dbus_error_message: str) GError#

Creates a Error based on the contents of dbus_error_name and dbus_error_message.

Errors registered with register_error will be looked up using dbus_error_name and if a match is found, the error domain and code is used. Applications can use get_remote_error to recover dbus_error_name.

If a match against a registered error is not found and the D-Bus error name is in a form as returned by encode_gerror the error domain and code encoded in the name is used to create the Error. Also, dbus_error_name is added to the error message such that it can be recovered with get_remote_error.

Otherwise, a Error with the error code DBUS_ERROR in the IOErrorEnum error domain is returned. Also, dbus_error_name is added to the error message such that it can be recovered with get_remote_error.

In all three cases, dbus_error_name can always be recovered from the returned Error using the get_remote_error function (unless strip_remote_error hasn’t been used on the returned error).

This function is typically only used in object mappings to prepare Error instances for applications. Regular applications should not use it.

Added in version 2.26.

Parameters:

dbus_error_message – D-Bus error message

quark() int#
register_error(error_code: int, dbus_error_name: str) bool#

Creates an association mapping between dbus_error_name and Errors specified by error_domain and error_code.

This is typically done in the function that returns the Quark for an error domain.

Added in version 2.26.

Parameters:
  • error_code – an error code

  • dbus_error_name – a D-Bus error name

register_error_domain(entries: list[DBusErrorEntry]) int#

Helper function for associating a Error error domain with D-Bus error names.

While quark_volatile has a volatile qualifier, this is a historical artifact and the argument passed to it should not be volatile.

Added in version 2.26.

Parameters:

entries – items to register

strip_remote_error() bool#

Looks for extra information in the error message used to recover the D-Bus error name and strips it if found.

If stripped, the message field in error will correspond exactly to what was received on the wire.

This is typically used when presenting errors to the end user.

Added in version 2.26.

unregister_error(error_code: int, dbus_error_name: str) bool#

Destroys an association previously set up with register_error.

Added in version 2.26.

Parameters:
  • error_code – an error code

  • dbus_error_name – a D-Bus error name

Fields#

class DBusError
ACCESS_DENIED#

Security restrictions don’t allow doing what you’re trying to do.

ADDRESS_IN_USE#

Can’t bind a socket since its address is in use (i.e. EADDRINUSE).

ADT_AUDIT_DATA_UNKNOWN#

Asked for ADT audit data and it wasn’t available.

AUTH_FAILED#

Authentication didn’t work.

BAD_ADDRESS#

A D-Bus bus address was malformed.

DISCONNECTED#

The connection is disconnected and you’re trying to use it.

FAILED#

A generic error; “something went wrong” - see the error message for more.

FILE_EXISTS#

Existing file and the operation you’re using does not silently overwrite.

FILE_NOT_FOUND#

Missing file.

INVALID_ARGS#

Invalid arguments passed to a method call.

INVALID_FILE_CONTENT#

A file contains invalid syntax or is otherwise broken.

INVALID_SIGNATURE#

A type signature is not valid.

IO_ERROR#

Something went wrong reading or writing to a socket, for example.

LIMITS_EXCEEDED#

Some limited resource is exhausted.

MATCH_RULE_INVALID#

The match rule isn’t syntactically valid.

MATCH_RULE_NOT_FOUND#

Tried to remove or modify a match rule that didn’t exist.

NAME_HAS_NO_OWNER#

The bus name you referenced doesn’t exist (i.e. no application owns it).

NOT_SUPPORTED#

Requested operation isn’t supported (like ENOSYS on UNIX).

NO_MEMORY#

There was not enough memory to complete an operation.

NO_NETWORK#

No network access (probably ENETUNREACH on a socket).

NO_REPLY#

No reply to a message expecting one, usually means a timeout occurred.

NO_SERVER#

Unable to connect to server (probably caused by ECONNREFUSED on a socket).

OBJECT_PATH_IN_USE#

There’s already an object with the requested object path.

PROPERTY_READ_ONLY#

Property you tried to set is read-only. Since 2.42

SELINUX_SECURITY_CONTEXT_UNKNOWN#

Asked for SELinux security context and it wasn’t available.

SERVICE_UNKNOWN#

The bus doesn’t know how to launch a service to supply the bus name you wanted.

SPAWN_CHILD_EXITED#

While starting a new process, the child exited with a status code.

SPAWN_CHILD_SIGNALED#

While starting a new process, the child exited on a signal.

SPAWN_CONFIG_INVALID#

We failed to setup the config parser correctly.

SPAWN_EXEC_FAILED#

While starting a new process, the exec() call failed.

SPAWN_FAILED#

While starting a new process, something went wrong.

SPAWN_FILE_INVALID#

Service file invalid (Name, User or Exec missing).

SPAWN_FORK_FAILED#

While starting a new process, the fork() call failed.

SPAWN_NO_MEMORY#

Tried to get a UNIX process ID and it wasn’t available.

SPAWN_PERMISSIONS_INVALID#

Permissions are incorrect on the setuid helper.

SPAWN_SERVICE_INVALID#

Bus name was not valid.

SPAWN_SERVICE_NOT_FOUND#

Service file not found in system-services directory.

SPAWN_SETUP_FAILED#

We failed to setup the environment correctly.

TIMED_OUT#

Certain timeout errors, e.g. while starting a service. Warning: this is confusingly-named given that TIMEOUT also exists. We can’t fix it for compatibility reasons so just be careful.

TIMEOUT#

Certain timeout errors, possibly ETIMEDOUT on a socket. Note that NO_REPLY is used for message reply timeouts. Warning: this is confusingly-named given that TIMED_OUT also exists. We can’t fix it for compatibility reasons so just be careful.

UNIX_PROCESS_ID_UNKNOWN#

Tried to get a UNIX process ID and it wasn’t available.

UNKNOWN_INTERFACE#

Interface you invoked a method on isn’t known by the object. Since 2.42

UNKNOWN_METHOD#

Method name you invoked isn’t known by the object you invoked it on.

UNKNOWN_OBJECT#

Object you invoked a method on isn’t known. Since 2.42

UNKNOWN_PROPERTY#

Property you tried to access isn’t known by the object. Since 2.42