API:Errors and warnings

If something goes wrong in an API request, an error or a warning will be thrown. Warnings are thrown for non-fatal conditions such as invalid parameters, whereas errors are only thrown for fatal conditions.

Warnings
Warnings are output in the following format: As shown in the example, warnings are grouped by the name of the module that caused them. Multiple warnings from the same module are separated by a newline.

Parameter validation warnings
The following warnings can be thrown when validating parameters, and can therefore be thrown by all modules. is replaced by the name of the parameter.


 * Too many values supplied for parameter ' paramname ' : the limit is limit
 * Unrecognized value for parameter ' paramname ' : value
 * Unrecognized values for parameter ' paramname ' : value1, value2, value3

Errors
Error messages are output in the following format: Where  is replaced with a short error code (which need not be unique to the error) and   with a more elaborate description of the error (which is unique).

Error messages in the documentation
Error messages are documented as follows:
 * code: apparams
 * info: prlevel may not be used without prtype

Which corresponds to:

Parameter validation errors
The following errors can be thrown when validating parameters, and can therefore be thrown by all modules. is replaced by the name of the parameter.


 * code: multival_paramname
 * info: Only one of ' value1 ', ' value2 ', ' value3 ' is allowed for parameter ' paramname '
 * code: unknown_paramname
 * info: Unrecognized value for parameter ' paramname ' : value
 * code: paramname
 * info: paramname may not be set to less than min (set to value)
 * code: paramname
 * info: paramname may not be set over max (set to value) for bots and sysops
 * code: paramname
 * info: paramname may not be set over max (set to value) for users
 * code: badtimestamp_paramname
 * info: Invalid value value for timestamp parameter paramname
 * code: baduser_paramname
 * info: Invalid value value for user parameter paramname
 * code: invalidparammix
 * info: The parameters param1, param2, param3 cannot be used together
 * code: missingparam
 * info: One of the parameters param1, param2, param3' is required

Standard error messages
Some generic error messages are shared among modules. If a module can throw these errors, that's explicitly mentioned in its  section.


 * code: unknownerror
 * info: Unknown error
 * This usually means something crazy like a rare race condition occurred. If you get this error, retry your request until it succeeds or returns a more informative error message
 * code: unknownerror
 * info: Unknown error errorcode
 * code: unsupportednamespace
 * info: Pages in the Special namespace can't be edited
 * code: protectednamespace-interface
 * info: You're not allowed to edit interface messages
 * code: protectednamespace
 * info: You're not allowed to edit pages in the ``namespace '' namespace
 * code: customcssjsprotected
 * info: You're not allowed to edit custom CSS and JavaScript pages
 * code: cascadeprotected
 * info: The page you're trying to edit is protected because it's included in a cascade-protected page
 * code: protectedpage
 * info: The ``right '' right is required to edit this page
 * code: permissiondenied
 * info: Permission denied
 * code: confirmemail
 * info: You must confirm your e-mail address before you can edit
 * code: blocked
 * info: You have been blocked from editing
 * code: autoblocked
 * info: Your IP address has been blocked automatically, because it was used by a blocked user
 * code: ratelimited
 * info: You've exceeded your rate limit. Please wait some time and try again
 * code: readonly
 * info: The wiki is currently in read-only mode
 * code: badtoken
 * info: Invalid token
 * code: missingtitle
 * info: The page you requested doesn't exist
 * code: hookaborted
 * info: The modification you tried to make was aborted by an extension hook
 * code: nosuchuser
 * info: The user you specified doesn't exist
 * code: invalidtitle
 * info: Bad title ``title ''
 * code: invaliduser
 * info: Invalid username ``username ''