Skip to content

NUT Protocol

gbakeman edited this page Nov 29, 2025 · 1 revision

An error response has the following format:

ERR <message> [<extra>...]

<message> is always one element; it never contains spaces. This may be used to allow additional information (<extra>) in the future.

<message> can have the following values:

  • ACCESS-DENIED

    The client’s host and/or authentication details (username, password) are not sufficient to execute the requested command.

  • UNKNOWN-UPS

    The UPS specified in the request is not known to upsd. This usually means that it didn’t match anything in ups.conf.

  • VAR-NOT-SUPPORTED

    The specified UPS doesn’t support the variable in the request.

    This is also sent for unrecognized variables which are in a space which is handled by upsd, such as server.*.

  • CMD-NOT-SUPPORTED

    The specified UPS doesn’t support the instant command in the request.

  • INVALID-ARGUMENT

    The client sent an argument to a command which is not recognized or is otherwise invalid in this context. This is typically caused by sending a valid command like GET with an invalid subcommand.

  • INSTCMD-FAILED

    upsd failed to deliver the instant command request to the driver. No further information is available to the client. This typically indicates a dead or broken driver.

  • SET-FAILED

    upsd failed to deliver the set request to the driver. This is just like INSTCMD-FAILED above.

  • READONLY

    The requested variable in a SET command is not writable.

  • TOO-LONG

    The requested value in a SET command is too long.

  • FEATURE-NOT-SUPPORTED

    This instance of upsd does not support the requested feature. This is only used for TLS/SSL mode (STARTTLS) at the moment.

  • FEATURE-NOT-CONFIGURED

    This instance of upsd hasn’t been configured properly to allow the requested feature to operate. This is also limited to STARTTLS for now.

  • ALREADY-SSL-MODE

    TLS/SSL mode is already enabled on this connection, so upsd can’t start it again.

  • DRIVER-NOT-CONNECTED

    upsd can’t perform the requested command, since the driver for that UPS is not connected. This usually means that the driver is not running, or if it is, the ups.conf is misconfigured.

  • DATA-STALE

    upsd is connected to the driver for the UPS, but that driver isn’t providing regular updates or has specifically marked the data as stale. upsd refuses to provide variables on stale units to avoid false readings.

    This generally means that the driver is running, but it has lost communications with the hardware. Check the physical connection to the equipment.

  • ALREADY-LOGGED-IN

    The client already sent LOGIN for a UPS and can’t do it again. There is presently a limit of one LOGIN record per connection.

  • INVALID-PASSWORD

    The client sent an invalid PASSWORD — perhaps an empty one.

  • ALREADY-SET-PASSWORD

    The client already set a PASSWORD and can’t set another. This also should never happen with normal NUT clients.

  • INVALID-USERNAME

    The client sent an invalid USERNAME.

  • ALREADY-SET-USERNAME

    The client has already set a USERNAME, and can’t set another. This should never happen with normal NUT clients.

  • USERNAME-REQUIRED

    The requested command requires a username for authentication, but the client hasn’t set one.

  • PASSWORD-REQUIRED

    The requested command requires a passname for authentication, but the client hasn’t set one.

  • UNKNOWN-COMMAND

    upsd doesn’t recognize the requested command.

    This can be useful for backwards compatibility with older versions of upsd. Some NUT clients will try GET and fall back on REQ after receiving this response.

  • INVALID-VALUE

    The value specified in the request is not valid. This usually applies to a SET of an ENUM type which is using a value which is not in the list of allowed values.

Clone this wiki locally