SD-BUS-ERRORS(3)

🌸 NAME 🌸

okay so bestie, this is the SD-BUS-ERRORS(3) page from sd-bus-errors β€” the standard D-Bus error names roster. The whole iconic squad is:

  • SD_BUS_ERROR_FAILED
  • SD_BUS_ERROR_NO_MEMORY
  • SD_BUS_ERROR_SERVICE_UNKNOWN
  • SD_BUS_ERROR_NAME_HAS_NO_OWNER
  • SD_BUS_ERROR_NO_REPLY
  • SD_BUS_ERROR_IO_ERROR
  • SD_BUS_ERROR_BAD_ADDRESS
  • SD_BUS_ERROR_NOT_SUPPORTED
  • SD_BUS_ERROR_LIMITS_EXCEEDED
  • SD_BUS_ERROR_ACCESS_DENIED
  • SD_BUS_ERROR_AUTH_FAILED
  • SD_BUS_ERROR_NO_SERVER
  • SD_BUS_ERROR_TIMEOUT
  • SD_BUS_ERROR_NO_NETWORK
  • SD_BUS_ERROR_ADDRESS_IN_USE
  • SD_BUS_ERROR_DISCONNECTED
  • SD_BUS_ERROR_INVALID_ARGS
  • SD_BUS_ERROR_FILE_NOT_FOUND
  • SD_BUS_ERROR_FILE_EXISTS
  • SD_BUS_ERROR_UNKNOWN_METHOD
  • SD_BUS_ERROR_UNKNOWN_OBJECT
  • SD_BUS_ERROR_UNKNOWN_INTERFACE
  • SD_BUS_ERROR_UNKNOWN_PROPERTY
  • SD_BUS_ERROR_PROPERTY_READ_ONLY
  • SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
  • SD_BUS_ERROR_INVALID_SIGNATURE
  • SD_BUS_ERROR_INCONSISTENT_MESSAGE
  • SD_BUS_ERROR_TIMED_OUT
  • SD_BUS_ERROR_MATCH_RULE_NOT_FOUND
  • SD_BUS_ERROR_MATCH_RULE_INVALID
  • SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED
  • SD_BUS_ERROR_INVALID_FILE_CONTENT
  • SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN
  • SD_BUS_ERROR_OBJECT_PATH_IN_USE

✨ SYNOPSIS ✨

okay so this is the whole define block, no cap β€” copy these exactly, bestie:

#include <systemd/sd-bus.h>

#define SD_BUS_ERROR_FAILED                  "org.freedesktop.DBus.Error.Failed"
#define SD_BUS_ERROR_NO_MEMORY               "org.freedesktop.DBus.Error.NoMemory"
#define SD_BUS_ERROR_SERVICE_UNKNOWN         "org.freedesktop.DBus.Error.ServiceUnknown"
#define SD_BUS_ERROR_NAME_HAS_NO_OWNER       "org.freedesktop.DBus.Error.NameHasNoOwner"
#define SD_BUS_ERROR_NO_REPLY                "org.freedesktop.DBus.Error.NoReply"
#define SD_BUS_ERROR_IO_ERROR                "org.freedesktop.DBus.Error.IOError"
#define SD_BUS_ERROR_BAD_ADDRESS             "org.freedesktop.DBus.Error.BadAddress"
#define SD_BUS_ERROR_NOT_SUPPORTED           "org.freedesktop.DBus.Error.NotSupported"
#define SD_BUS_ERROR_LIMITS_EXCEEDED         "org.freedesktop.DBus.Error.LimitsExceeded"
#define SD_BUS_ERROR_ACCESS_DENIED           "org.freedesktop.DBus.Error.AccessDenied"
#define SD_BUS_ERROR_AUTH_FAILED             "org.freedesktop.DBus.Error.AuthFailed"
#define SD_BUS_ERROR_NO_SERVER               "org.freedesktop.DBus.Error.NoServer"
#define SD_BUS_ERROR_TIMEOUT                 "org.freedesktop.DBus.Error.Timeout"
#define SD_BUS_ERROR_NO_NETWORK              "org.freedesktop.DBus.Error.NoNetwork"
#define SD_BUS_ERROR_ADDRESS_IN_USE          "org.freedesktop.DBus.Error.AddressInUse"
#define SD_BUS_ERROR_DISCONNECTED            "org.freedesktop.DBus.Error.Disconnected"
#define SD_BUS_ERROR_INVALID_ARGS            "org.freedesktop.DBus.Error.InvalidArgs"
#define SD_BUS_ERROR_FILE_NOT_FOUND          "org.freedesktop.DBus.Error.FileNotFound"
#define SD_BUS_ERROR_FILE_EXISTS             "org.freedesktop.DBus.Error.FileExists"
#define SD_BUS_ERROR_UNKNOWN_METHOD          "org.freedesktop.DBus.Error.UnknownMethod"
#define SD_BUS_ERROR_UNKNOWN_OBJECT          "org.freedesktop.DBus.Error.UnknownObject"
#define SD_BUS_ERROR_UNKNOWN_INTERFACE       "org.freedesktop.DBus.Error.UnknownInterface"
#define SD_BUS_ERROR_UNKNOWN_PROPERTY        "org.freedesktop.DBus.Error.UnknownProperty"
#define SD_BUS_ERROR_PROPERTY_READ_ONLY      "org.freedesktop.DBus.Error.PropertyReadOnly"
#define SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
#define SD_BUS_ERROR_INVALID_SIGNATURE       "org.freedesktop.DBus.Error.InvalidSignature"
#define SD_BUS_ERROR_INCONSISTENT_MESSAGE    "org.freedesktop.DBus.Error.InconsistentMessage"
#define SD_BUS_ERROR_TIMED_OUT               "org.freedesktop.DBus.Error.TimedOut"
#define SD_BUS_ERROR_MATCH_RULE_NOT_FOUND    "org.freedesktop.DBus.Error.MatchRuleNotFound"
#define SD_BUS_ERROR_MATCH_RULE_INVALID      "org.freedesktop.DBus.Error.MatchRuleInvalid"
#define SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED \
                                                    "org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"
#define SD_BUS_ERROR_INVALID_FILE_CONTENT    "org.freedesktop.DBus.Error.InvalidFileContent"
#define SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN \
                                                    "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown"
#define SD_BUS_ERROR_OBJECT_PATH_IN_USE      "org.freedesktop.DBus.Error.ObjectPathInUse"

πŸ’… DESCRIPTION πŸ’…

so besides the error names that user programs define themselves, D-Bus knows a bunch of generic, standardized error names, and they're listed below, bestie πŸ’–

also, in sd-bus, there's this special error namespace "System.Error." that maps arbitrary Linux system errors (as defined by errno(3)) to D-Bus errors and back. example: EUCLEAN maps to "System.Error.EUCLEAN" and back. iconic little translator moment ✨

  • SD_BUS_ERROR_FAILED β€” a generic error indication. see the error message for further details. this one should be avoided, in favor of a more expressive error name. Added in version 223.
  • SD_BUS_ERROR_NO_MEMORY β€” a memory allocation failed, and the requested operation could not be completed. Added in version 223.
  • SD_BUS_ERROR_SERVICE_UNKNOWN β€” the contacted bus service is unknown and cannot be activated. Added in version 223.
  • SD_BUS_ERROR_NAME_HAS_NO_OWNER β€” the specified bus service name currently has no owner. Added in version 223.
  • SD_BUS_ERROR_NO_REPLY β€” a message did not receive a reply. this error is usually generated after a timeout. Added in version 223.
  • SD_BUS_ERROR_IO_ERROR β€” generic input/output error, for example when accessing a socket or other I/O context. Added in version 223.
  • SD_BUS_ERROR_BAD_ADDRESS β€” the specified D-Bus bus address string is malformed. Added in version 223.
  • SD_BUS_ERROR_NOT_SUPPORTED β€” the requested operation is not supported on the local system. Added in version 223.
  • SD_BUS_ERROR_LIMITS_EXCEEDED β€” some limited resource has been exhausted. Added in version 223.
  • SD_BUS_ERROR_ACCESS_DENIED β€” access to a resource has been denied due to security restrictions. Added in version 223.
  • SD_BUS_ERROR_AUTH_FAILED β€” authentication did not complete successfully. Added in version 223.
  • SD_BUS_ERROR_NO_SERVER β€” unable to connect to the specified server. Added in version 223.
  • SD_BUS_ERROR_TIMEOUT β€” an operation timed out. note that method calls which timeout generate a SD_BUS_ERROR_NO_REPLY. Added in version 223.
  • SD_BUS_ERROR_NO_NETWORK β€” no network available to execute requested network operation on. Added in version 223.
  • SD_BUS_ERROR_ADDRESS_IN_USE β€” the specified network address is already being listened on. Added in version 223.
  • SD_BUS_ERROR_DISCONNECTED β€” the connection has been terminated. Added in version 223.
  • SD_BUS_ERROR_INVALID_ARGS β€” one or more invalid arguments have been passed. Added in version 223.
  • SD_BUS_ERROR_FILE_NOT_FOUND β€” the requested file could not be found. Added in version 223.
  • SD_BUS_ERROR_FILE_EXISTS β€” the requested file already exists. Added in version 223.
  • SD_BUS_ERROR_UNKNOWN_METHOD β€” the requested method does not exist in the selected interface. Added in version 223.
  • SD_BUS_ERROR_UNKNOWN_OBJECT β€” the requested object does not exist in the selected service. Added in version 223.
  • SD_BUS_ERROR_UNKNOWN_INTERFACE β€” the requested interface does not exist on the selected object. Added in version 223.
  • SD_BUS_ERROR_UNKNOWN_PROPERTY β€” the requested property does not exist in the selected interface. Added in version 223.
  • SD_BUS_ERROR_PROPERTY_READ_ONLY β€” a write operation was requested on a read-only property. Added in version 223.
  • SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN β€” the requested PID is not known. Added in version 223.
  • SD_BUS_ERROR_INVALID_SIGNATURE β€” the specified message signature is not valid. Added in version 223.
  • SD_BUS_ERROR_INCONSISTENT_MESSAGE β€” the passed message does not validate correctly. Added in version 223.
  • SD_BUS_ERROR_MATCH_RULE_NOT_FOUND β€” the specified match rule does not exist. Added in version 223.
  • SD_BUS_ERROR_MATCH_RULE_INVALID β€” the specified match rule is invalid. Added in version 223.
  • SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED β€” access to the requested operation is not permitted. however, it might be available after interactive authentication. this is usually returned by method calls supporting a framework for additional interactive authorization, when interactive authorization was not enabled with the sd_bus_message_set_allow_interactive_authorization(3) for the method call message. Added in version 223.

also yes, the define block has SD_BUS_ERROR_TIMED_OUT, SD_BUS_ERROR_INVALID_FILE_CONTENT, SD_BUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN, and SD_BUS_ERROR_OBJECT_PATH_IN_USE too β€” this page doesn't give each one its own blurb, so no made-up tea from me πŸ’€


🫢 NOTES 🫢

functions described here are available as a shared library, which can be compiled against and linked to with the libsystemd pkg-config(1) file. periodt ✨

bestie, important vibe check: the code described here uses getenv(3), which is declared to be not multi-thread-safe. this means that the code calling the functions described here must not call setenv(3) from a parallel thread. it is recommended to only do calls to setenv() from an early phase of the program when no other threads have been started. no cap, follow this one πŸ’…

🌈 SEE ALSO 🌈

systemd(1), libsystemd(3), sd-bus(3), sd_bus_error(3), sd_bus_message_set_allow_interactive_authorization(3), errno(3), strerror_r(3)


okay bye bestie 🫢 this has been the SD-BUS-ERRORS(3) page from sd-bus-errors, footer says systemd 261.3 and no date line, so it's giving timeless βœ¨πŸ’– mwah πŸ’‹

πŸ“¦ where this page comes from