Error Enums

If you have to handle an error, try to use internal-error as little as possible. Just ask on the mailing list, and we can add some more error enums to cover the type of error in an abstract way as possible.

Every error should have an enumerated type (e.g. out-of-memory) and also an error description. The error description is not translated and not converted into the users locale. The error description should be descriptive, as it's for power users and people trying to debug the problem. For instance, "Out of memory" is not helpful as an error description that is reported in a bugzilla, but "Could not create database index" is. For the description use ; to separate the lines if required.

The following error enumerated types are available for use in all backends:

Error Description
out-of-memory There is an out of memory condition
no-network There is no network connection that can be used
not-supported Not supported by the backend. NOTE: You shouldn't be setting non-NULL in the compiled backend symbol table if you find yourself using this.
internal-error There was an unspecified internal error. NOTE: Please try and be more specific. If you are using this then we should probably add a new type.
no-cache The operation is trying to read from the cache, but the cache is not present or invalid
gpg-failure There was a GPG failure in the transaction
package-id-invalid The package ID is not valid for this transaction
package-not-installed The package that is trying to be removed or updated is not installed
package-not-found The package that is trying to be removed or updated is not installed
package-already-installed The (single) package that is trying to be installed or updated is already installed
all-packages-already-installed Multiple package installs were attempted, but all of them were already installed. The backend should generate package-already-installed messages (not errors) for each package.
package-download-failed A package failed to download correctly
invalid-package-file The file that is supposed to contain a package to install is corrupt, or is not a valid package file
package-install-blocked The backend's configuration or policy prevents the install or updating of a package
dep-resolution-failed Dependency resolution failed
filter-invalid The filter was invalid. NOTE: syntax checking is done in the backend loader, so you should only use this if the filter is not supported by the backend.
group-not-found The specified software group was not found.
create-thread-failed Failed to create a thread
transaction-error There was a generic transaction error, but please give more details in the description
transaction-cancelled The transaction was cancelled as the result of a call to Cancel()
repo-not-found The repository name could not be found
repo-configuration-error One of the enabled repositories has invalid configuration
repo-not-available There was a (possibly transient) problem connecting to a repository
cannot-remove-system-package Could not remove a protected system package that is needed for stable operation of the system
process-quit The process was asked to quit, probably because it was cancelled
process-kill The process was forcibly killed, probably because ignored the quit request. This is probably due to it being cancelled
failed-config-parsing Configuration files could not be read or parsed.
cannot-cancel The Cancel() method was called, but it is too late to cancel the current transaction.
cannot-get-lock The backend could not acquire a lock on the underlying package management system.
no-packages-to-update UpdatePackages() was called, but there are no packages to update.
cannot-write-repo-config RepoEnable() or RepoSetData() was called, but the repository configuration file could not be written to.
local-install-failed A local file could not be installed. The file might not be readable, or it might not contain a valid package.
bad-gpg-signature The package is signed with a GPG signature, but that signature is not valid in some way.
package-corrupt The downloaded package is corrupt.
file-not-found The file could not be found on the system.