API:Errors and warnings

From MediaWiki.org
Jump to: navigation, search
Tools clipart.png This page is part of the MediaWiki API documentation.
MediaWiki API

Quick overview:

v · d · e

If something goes wrong in an API request, an error or a warning will be thrown (although the HTTP response will usually still be 200 OK). Warnings are thrown for non-fatal conditions such as invalid parameters, whereas errors are only thrown for fatal conditions.

Warnings[edit | edit source]

Warnings are output in the following format:

<?xml version="1.0" encoding="utf-8"?>
<api>
  <warnings>
    <query>Warning text
Another warning</query>
    <info>A warning from prop=info</info>
  </warnings>
</api>

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.

Disabled modules[edit | edit source]

Disabled action=query submodules will always throw the following warning:

  • The "modulename" module has been disabled.

Parameter validation warnings[edit | edit source]

The following warnings can be thrown when validating parameters, and can therefore be thrown by all modules. paramname 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[edit | edit source]

Error messages are output in the following format:

<error code="code" info="info" />

Where code is replaced with a short error code (which need not be unique to the error) and info with a more elaborate description of the error (which is unique). Also, the error code will be returned in the MediaWiki-API-Error HTTP header. For an example error response or to test your client's error handling, see http://en.wikipedia.org/w/api.php?action=blah

Note that when viewing errors in pretty-print formats, the API help will be returned inside the <error> element. To save bandwidth, this doesn't happen for non-pretty-print formats; if you specifically want the help text in a non-pretty-print format, use action=help.

Error messages in the documentation[edit | edit source]

Error messages are documented as follows:

Code Info
apparams prlevel may not be used without prtype

Which corresponds to:

<error code="apparams" info="prlevel may not be used without prtype" />

Disabled modules[edit | edit source]

Disabled action= modules will always fail with the following error:

Code Info
moduledisabled The "modulename" module has been disabled.

Parameter validation errors[edit | edit source]

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

Code Info
multival_paramname Only one of 'value1', 'value2', 'value3' is allowed for parameter 'paramname'
unknown_paramname Unrecognized value for parameter 'paramname': value
paramname paramname may not be set to less than min (set to value)
paramname paramname may not be set over max (set to value) for bots and sysops
paramname paramname may not be set over max (set to value) for users
badtimestamp_paramname Invalid value value for timestamp parameter paramname
baduser_paramname Invalid value value for user parameter paramname
invalidparammix The parameters param1, param2, param3 cannot be used together
missingparam One of the parameters param1, param2, param3 is required
_badcontinue Invalid continue param. You should pass the original value returned by the previous query

Standard error messages[edit | edit source]

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

Code Info
unknownerror 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
unknownerror Unknown error errorcode
unsupportednamespace Pages in the Special namespace can't be edited
protectednamespace-interface You're not allowed to edit interface messages
protectednamespace You're not allowed to edit pages in the "namespace" namespace
customcssjsprotected You're not allowed to edit custom CSS and JavaScript pages
cascadeprotected The page you're trying to edit is protected because it's included in a cascade-protected page
protectedpage The "right" right is required to edit this page
permissiondenied Permission denied
confirmemail You must confirm your e-mail address before you can edit
blocked You have been blocked from editing
autoblocked Your IP address has been blocked automatically, because it was used by a blocked user
ratelimited You've exceeded your rate limit. Please wait some time and try again
readonly The wiki is currently in read-only mode
badtoken Invalid token (did you remember to urlencode it?)
missingtitle The page you requested doesn't exist
mustbeposted Type of your HTTP request message must be POST
hookaborted The modification you tried to make was aborted by an extension hook
nosuchpageid There is no page with ID id
nosuchrevid There is no revision with ID id
nosuchrcid There is no change with rcid "id"
nosuchuser The user you specified doesn't exist
invalidtitle Bad title "title"
invaliduser Invalid username "username"
assertbotfailed "assert=bot" has been used, but logged in user is not a bot
assertuserfailed "assert=user" has been used, but user is not logged in