Unused error numbers less than 2000 are reserved for future standardization.
Error numbers 2000-3999 are reserved for language bindings.
Error numbers greater than 4000 are reserved for future registration.