_captures = {
    'faconfirmwait': 'seconds',
    'emailunconfirmed': 'code_length',
    'filemigrate': 'new_dc',
    'filepartmissing': 'which',
    'floodtestphonewait': 'seconds',
    'floodwait': 'seconds',
    'interdccall': 'dc',
    'interdccallrich': 'dc',
    'networkmigrate': 'new_dc',
    'passwordtoofresh': 'seconds',
    'phonemigrate': 'new_dc',
    'previouschatimportactivewaitmin': 'minutes',
    'sessiontoofresh': 'seconds',
    'slowmodewait': 'seconds',
    'statsmigrate': 'dc',
    'takeoutinitdelay': 'seconds',
    'usermigrate': 'new_dc',
}


_descriptions = {
    'faconfirmwait': 'The account is 2FA protected so it will be deleted in a week. Otherwise it can be reset in {seconds}',
    'abouttoolong': 'The provided bio is too long',
    'accesstokenexpired': 'Bot token expired',
    'accesstokeninvalid': 'The provided token is not valid',
    'activeuserrequired': 'The method is only available to already activated users',
    'adminstoomuch': 'Too many admins',
    'adminrankemojinotallowed': 'Emoji are not allowed in admin titles or ranks',
    'adminrankinvalid': 'The given admin title or rank was invalid (possibly larger than 16 characters)',
    'albumphotostoomany': 'Too many photos were included in the album',
    'apiidinvalid': 'The api_id/api_hash combination is invalid',
    'apiidpublishedflood': "This API id was published somewhere, you can't use it now",
    'articletitleempty': 'The title of the article is empty',
    'audiotitleempty': 'The title attribute of the audio must be non-empty',
    'authbytesinvalid': 'The provided authorization is invalid',
    'authkeyduplicated': 'The authorization key (session file) was used under two different IP addresses simultaneously, and can no longer be used. Use the same session exclusively, or use different sessions',
    'authkeyinvalid': 'The key is invalid',
    'authkeypermempty': 'The method is unavailable for temporary authorization key, not bound to permanent',
    'authkeyunregistered': 'The key is not registered in the system',
    'authrestart': 'Restart the authorization process',
    'authtokenalreadyaccepted': 'The authorization token was already used',
    'authtokenexpired': 'The provided authorization token has expired and the updated QR-code must be re-scanned',
    'authtokeninvalid': 'An invalid authorization token was provided',
    'autoarchivenotavailable': 'You cannot use this feature yet',
    'bankcardnumberinvalid': 'Incorrect credit card number',
    'baseportlocinvalid': 'Base port location invalid',
    'bannedrightsinvalid': 'You cannot use that set of permissions in this request, i.e. restricting view_messages as a default',
    'botstoomuch': 'There are too many bots in this chat/channel',
    'botchannelsna': "Bots can't edit admin privileges",
    'botcommanddescriptioninvalid': 'The command description was empty, too long or had invalid characters used',
    'botdomaininvalid': 'The domain used for the auth button does not match the one configured in @BotFather',
    'botgamesdisabled': 'Bot games cannot be used in this type of chat',
    'botgroupsblocked': "This bot can't be added to groups",
    'botinlinedisabled': "This bot can't be used in inline mode",
    'botinvalid': 'This is not a valid bot',
    'botmethodinvalid': 'The API access for bot users is restricted. The method you tried to invoke cannot be executed as a bot',
    'botmissing': 'This method can only be run by a bot',
    'botpaymentsdisabled': 'This method can only be run by a bot',
    'botpollsdisabled': 'You cannot create polls under a bot account',
    'botresponsetimeout': 'The bot did not answer to the callback query in time',
    'broadcastforbidden': 'The request cannot be used in broadcast channels',
    'broadcastidinvalid': 'The channel is invalid',
    'broadcastpublicvotersforbidden': 'You cannot broadcast polls where the voters are public',
    'broadcastrequired': 'The request can only be used with a broadcast channel',
    'buttondatainvalid': 'The provided button data is invalid',
    'buttontypeinvalid': 'The type of one of the buttons you provided is invalid',
    'buttonurlinvalid': 'Button URL invalid',
    'callalreadyaccepted': 'The call was already accepted',
    'callalreadydeclined': 'The call was already declined',
    'calloccupyfailed': 'The call failed because the user is already making another call',
    'callpeerinvalid': 'The provided call peer object is invalid',
    'callprotocolflagsinvalid': 'Call protocol flags invalid',
    'cdnmethodinvalid': 'This method cannot be invoked on a CDN server. Refer to https://core.telegram.org/cdn#schema for available methods',
    'channelsadminpublictoomuch': "You're admin of too many public channels, make some channels private to change the username of this channel",
    'channelstoomuch': 'You have joined too many channels/supergroups',
    'channelbanned': 'The channel is banned',
    'channelinvalid': 'Invalid channel object. Make sure to pass the right types, for instance making sure that the request is designed for channels or otherwise look for a different one more suited',
    'channelprivate': 'The channel specified is private and you lack permission to access it. Another reason may be that you were banned from it',
    'channelpublicgroupna': 'channel/supergroup not available',
    'chataboutnotmodified': 'About text has not changed',
    'chatabouttoolong': 'Chat about too long',
    'chatadmininviterequired': 'You do not have the rights to do this',
    'chatadminrequired': 'Chat admin privileges are required to do that in the specified chat (for example, to send a message in a channel which is not yours), or invalid permissions used for the channel or group',
    'chatforbidden': 'You cannot write in this chat',
    'chatidempty': 'The provided chat ID is empty',
    'chatidinvalid': 'Invalid object ID for a chat. Make sure to pass the right types, for instance making sure that the request is designed for chats (not channels/megagroups) or otherwise look for a different one more suited\\nAn example working with a megagroup and AddChatUserRequest, it will fail because megagroups are channels. Use InviteToChannelRequest instead',
    'chatinvalid': 'The chat is invalid for this request',
    'chatlinkexists': 'The chat is linked to a channel and cannot be used in that request',
    'chatnotmodified': "The chat or channel wasn't modified (title, invites, username, admins, etc. are the same)",
    'chatrestricted': 'The chat is restricted and cannot be used in that request',
    'chatsendgifsforbidden': "You can't send gifs in this chat",
    'chatsendinlineforbidden': 'You cannot send inline results in this chat',
    'chatsendmediaforbidden': "You can't send media in this chat",
    'chatsendstickersforbidden': "You can't send stickers in this chat",
    'chattitleempty': 'No chat title provided',
    'chatwriteforbidden': "You can't write in this chat",
    'chpcallfail': 'The statistics cannot be retrieved at this time',
    'codeempty': 'The provided code is empty',
    'codehashinvalid': 'Code hash invalid',
    'codeinvalid': 'Code invalid (i.e. from email)',
    'connectionapiidinvalid': 'The provided API id is invalid',
    'connectiondevicemodelempty': 'Device model empty',
    'connectionlangpackinvalid': 'The specified language pack is not valid. This is meant to be used by official applications only so far, leave it empty',
    'connectionlayerinvalid': 'The very first request must always be InvokeWithLayerRequest',
    'connectionnotinited': 'Connection not initialized',
    'connectionsystemempty': 'Connection system empty',
    'connectionsystemlangcodeempty': 'The system language string was empty during connection',
    'contactidinvalid': 'The provided contact ID is invalid',
    'contactnameempty': 'The provided contact name cannot be empty',
    'datainvalid': 'Encrypted data invalid',
    'datajsoninvalid': 'The provided JSON data is invalid',
    'dateempty': 'Date empty',
    'dcidinvalid': 'This occurs when an authorization is tried to be exported for the same data center one is currently connected to',
    'dhgainvalid': 'g_a invalid',
    'documentinvalid': "The document file was invalid and can't be used in inline mode",
    'emailhashexpired': 'The email hash expired and cannot be used to verify it',
    'emailinvalid': 'The given email is invalid',
    'emailunconfirmed': 'Email unconfirmed, the length of the code must be {code_length}',
    'emoticonempty': 'The emoticon field cannot be empty',
    'emoticoninvalid': 'The specified emoticon cannot be used or was not a emoticon',
    'emoticonstickerpackmissing': 'The emoticon sticker pack you are trying to get is missing',
    'encryptedmessageinvalid': 'Encrypted message invalid',
    'encryptionalreadyaccepted': 'Secret chat already accepted',
    'encryptionalreadydeclined': 'The secret chat was already declined',
    'encryptiondeclined': 'The secret chat was declined',
    'encryptionidinvalid': 'The provided secret chat ID is invalid',
    'encryptionoccupyfailed': 'TDLib developer claimed it is not an error while accepting secret chats and 500 is used instead of 420',
    'entitiestoolong': 'It is no longer possible to send such long data inside entity tags (for example inline text URLs)',
    'entitymentionuserinvalid': "You can't use this entity",
    'errortextempty': 'The provided error message is empty',
    'exportcardinvalid': 'Provided card is invalid',
    'externalurlinvalid': 'External URL invalid',
    'fieldnameempty': 'The field with the name FIELD_NAME is missing',
    'fieldnameinvalid': 'The field with the name FIELD_NAME is invalid',
    'filerefupgradeneeded': 'The file reference needs to be refreshed before being used again',
    'fileidinvalid': 'The provided file id is invalid. Make sure all parameters are present, have the correct type and are not empty (ID, access hash, file reference, thumb size ...)',
    'filemigrate': 'The file to be accessed is currently stored in DC {new_dc}',
    'filepartsinvalid': 'The number of file parts is invalid',
    'filepartempty': 'The provided file part is empty',
    'filepartinvalid': 'The file part number is invalid',
    'filepartlengthinvalid': 'The length of a file part is invalid',
    'filepartsizechanged': 'The file part size (chunk size) cannot change during upload',
    'filepartsizeinvalid': 'The provided file part size is invalid',
    'filepartmissing': 'Part {which} of the file is missing from storage',
    'filereferenceempty': 'The file reference must exist to access the media and it cannot be empty',
    'filereferenceexpired': 'The file reference has expired and is no longer valid or it belongs to self-destructing media and cannot be resent',
    'filereferenceinvalid': "The file reference is invalid or you can't do that operation on such message",
    'firstnameinvalid': 'The first name is invalid',
    'floodtestphonewait': 'A wait of {seconds} seconds is required in the test servers',
    'floodwait': 'A wait of {seconds} seconds is required',
    'folderidempty': 'The folder you tried to delete was already empty',
    'folderidinvalid': 'The folder you tried to use was not valid',
    'freshchangeadminsforbidden': 'Recently logged-in users cannot add or change admins',
    'freshchangephoneforbidden': 'Recently logged-in users cannot use this request',
    'freshresetauthorisationforbidden': 'The current session is too new and cannot be used to reset other authorisations yet',
    'frompeerinvalid': 'The given from_user peer cannot be used for the parameter',
    'gamebotinvalid': 'You cannot send that game with the current bot',
    'gifidinvalid': 'The provided GIF ID is invalid',
    'graphoutdatedreload': "Data can't be used for the channel statistics, graphs outdated",
    'groupedmediainvalid': 'Invalid grouped media',
    'groupcallinvalid': 'Group call invalid',
    'hashinvalid': 'The provided hash is invalid',
    'historygetfailed': 'Fetching of history failed',
    'imageprocessfailed': 'Failure while processing image',
    'importfileinvalid': 'The file is too large to be imported',
    'importformatunrecognized': 'Unknown import format',
    'inlinebotrequired': 'The action must be performed through an inline bot callback',
    'inlineresultexpired': 'The inline query expired',
    'inputconstructorinvalid': 'The provided constructor is invalid',
    'inputfetch': 'An error occurred while deserializing TL parameters',
    'inputfetchfail': 'Failed deserializing TL payload',
    'inputfilterinvalid': 'The search query filter is invalid',
    'inputlayerinvalid': 'The provided layer is invalid',
    'inputmethodinvalid': 'The invoked method does not exist anymore or has never existed',
    'inputrequesttoolong': 'The input request was too long. This may be a bug in the library as it can occur when serializing more bytes than it should (like appending the vector constructor code at the end of a message)',
    'inputuserdeactivated': 'The specified user was deleted',
    'interdccall': 'An error occurred while communicating with DC {dc}',
    'interdccallrich': 'A rich error occurred while communicating with DC {dc}',
    'invitehashempty': 'The invite hash is empty',
    'invitehashexpired': 'The chat the user tried to join has expired and is not valid anymore',
    'invitehashinvalid': 'The invite hash is invalid',
    'langpackinvalid': 'The provided language pack is invalid',
    'lastnameinvalid': 'The last name is invalid',
    'limitinvalid': 'An invalid limit was provided. See https://core.telegram.org/api/files#downloading-files',
    'linknotmodified': 'The channel is already linked to this group',
    'locationinvalid': 'The location given for a file was invalid. See https://core.telegram.org/api/files#downloading-files',
    'maxidinvalid': 'The provided max ID is invalid',
    'maxqtsinvalid': 'The provided QTS were invalid',
    'mdchecksuminvalid': 'The MD5 check-sums do not match',
    'mediacaptiontoolong': 'The caption is too long',
    'mediaempty': 'The provided media object is invalid or the current account may not be able to send it (such as games as users)',
    'mediainvalid': 'Media invalid',
    'medianewinvalid': 'The new media to edit the message with is invalid (such as stickers or voice notes)',
    'mediaprevinvalid': 'The old media cannot be edited with anything else (such as stickers or voice notes)',
    'megagroupidinvalid': 'The group is invalid',
    'megagroupprehistoryhidden': "You can't set this discussion group because it's history is hidden",
    'megagrouprequired': 'The request can only be used with a megagroup channel',
    'membernolocation': "An internal failure occurred while fetching user info (couldn't find location)",
    'memberoccupyprimarylocfailed': 'Occupation of primary member location failed',
    'messageauthorrequired': 'Message author required',
    'messagedeleteforbidden': "You can't delete one of the messages you tried to delete, most likely because it is a service message.",
    'messageedittimeexpired': "You can't edit this message anymore, too much time has passed since its creation.",
    'messageempty': 'Empty or invalid UTF-8 message was sent',
    'messageidsempty': 'No message ids were provided',
    'messageidinvalid': "The specified message ID is invalid or you can't do that operation on such message",
    'messagenotmodified': 'Content of the message was not modified',
    'messagepollclosed': 'The poll was closed and can no longer be voted on',
    'messagetoolong': 'Message was too long. Current maximum length is 4096 UTF-8 characters',
    'methodinvalid': 'The API method is invalid and cannot be used',
    'msgiddecreaseretry': 'The request should be retried with a lower message ID',
    'msgidinvalid': 'The message ID used in the peer was invalid',
    'msgwaitfailed': 'A waiting call returned an error',
    'multimediatoolong': 'Too many media files were included in the same album',
    'needchatinvalid': 'The provided chat is invalid',
    'needmemberinvalid': 'The provided member is invalid or does not exist (for example a thumb size)',
    'networkmigrate': 'The source IP address is associated with DC {new_dc}',
    'newsaltinvalid': 'The new salt is invalid',
    'newsettingsinvalid': 'The new settings are invalid',
    'nextoffsetinvalid': 'The value for next_offset is invalid. Check that it has normal characters and is not too long',
    'offsetinvalid': 'The given offset was invalid, it must be divisible by 1KB. See https://core.telegram.org/api/files#downloading-files',
    'offsetpeeridinvalid': 'The provided offset peer is invalid',
    'optionstoomuch': 'You defined too many options for the poll',
    'optioninvalid': 'The option specified is invalid and does not exist in the target poll',
    'packshortnameinvalid': 'Invalid sticker pack name. It must begin with a letter, can\'t contain consecutive underscores and must end in "_by_<bot username>".',
    'packshortnameoccupied': 'A stickerpack with this name already exists',
    'participantstoofew': 'Not enough participants',
    'participantcallfailed': 'Failure while making call',
    'participantversionoutdated': 'The other participant does not use an up to date telegram client with support for calls',
    'passwordempty': 'The provided password is empty',
    'passwordhashinvalid': 'The password (and thus its hash value) you entered is invalid',
    'passwordmissing': 'The account must have 2-factor authentication enabled (a password) before this method can be used',
    'passwordrequired': 'The account must have 2-factor authentication enabled (a password) before this method can be used',
    'passwordtoofresh': 'The password was added too recently and {seconds} seconds must pass before using the method',
    'paymentproviderinvalid': 'The payment provider was not recognised or its token was invalid',
    'peerflood': 'Too many requests',
    'peeridinvalid': 'An invalid Peer was used. Make sure to pass the right peer type and that the value is valid (for instance, bots cannot start conversations)',
    'peeridnotsupported': 'The provided peer ID is not supported',
    'persistenttimestampempty': 'Persistent timestamp empty',
    'persistenttimestampinvalid': 'Persistent timestamp invalid',
    'persistenttimestampoutdated': 'Persistent timestamp outdated',
    'phonecodeempty': 'The phone code is missing',
    'phonecodeexpired': 'The confirmation code has expired',
    'phonecodehashempty': 'The phone code hash is missing',
    'phonecodeinvalid': 'The phone code entered was invalid',
    'phonemigrate': 'The phone number a user is trying to use for authorization is associated with DC {new_dc}',
    'phonenumberappsignupforbidden': "You can't sign up using this app",
    'phonenumberbanned': 'The used phone number has been banned from Telegram and cannot be used anymore. Maybe check https://www.telegram.org/faq_spam',
    'phonenumberflood': 'You asked for the code too many times.',
    'phonenumberinvalid': 'The phone number is invalid',
    'phonenumberoccupied': 'The phone number is already in use',
    'phonenumberunoccupied': 'The phone number is not yet being used',
    'phonepasswordflood': 'You have tried logging in too many times',
    'phonepasswordprotected': 'This phone is password protected',
    'photocontenturlempty': 'The content from the URL used as a photo appears to be empty or has caused another HTTP error',
    'photocropsizesmall': 'Photo is too small',
    'photoextinvalid': 'The extension of the photo is invalid',
    'photoidinvalid': 'Photo id is invalid',
    'photoinvalid': 'Photo invalid',
    'photoinvaliddimensions': 'The photo dimensions are invalid (hint: `pip install pillow` for `send_file` to resize images)',
    'photosavefileinvalid': 'The photo you tried to send cannot be saved by Telegram. A reason may be that it exceeds 10MB. Try resizing it locally',
    'photothumburlempty': 'The URL used as a thumbnail appears to be empty or has caused another HTTP error',
    'pinrestricted': "You can't pin messages in private chats with other people",
    'pollanswersinvalid': 'The poll did not have enough answers or had too many',
    'polloptionduplicate': 'A duplicate option was sent in the same poll',
    'polloptioninvalid': 'A poll option used invalid data (the data may be too long)',
    'pollquestioninvalid': 'The poll question was either empty or too long',
    'pollunsupported': 'This layer does not support polls in the issued method',
    'previouschatimportactivewaitmin': 'Similar to a flood wait, must wait {minutes} minutes',
    'privacykeyinvalid': 'The privacy key is invalid',
    'privacytoolong': 'Cannot add that many entities in a single request',
    'privacyvalueinvalid': 'The privacy value is invalid',
    'ptschangeempty': 'No PTS change',
    'queryidempty': 'The query ID is empty',
    'queryidinvalid': 'The query ID is invalid',
    'querytooshort': 'The query string is too short',
    'quizcorrectanswersempty': 'A quiz must specify one correct answer',
    'quizcorrectanswerstoomuch': 'There can only be one correct answer',
    'quizcorrectanswerinvalid': 'The correct answer is not an existing answer',
    'quizmultipleinvalid': 'A poll cannot be both multiple choice and quiz',
    'randomidduplicate': 'You provided a random ID that was already used',
    'randomidinvalid': 'A provided random ID is invalid',
    'randomlengthinvalid': 'Random length invalid',
    'rangesinvalid': 'Invalid range provided',
    'reactionempty': 'No reaction provided',
    'reactioninvalid': 'Invalid reaction provided (only emoji are allowed) or you cannot use the reaction in the specified chat',
    'reflectornotavailable': 'Invalid call reflector server',
    'regidgeneratefailed': 'Failure while generating registration ID',
    'replymarkupgameempty': 'The provided reply markup for the game is empty',
    'replymarkupinvalid': 'The provided reply markup is invalid',
    'replymarkuptoolong': 'The data embedded in the reply markup buttons was too much',
    'resultstoomuch': 'You sent too many results, see https://core.telegram.org/bots/api#answerinlinequery for the current limit',
    'resultidduplicate': 'Duplicated IDs on the sent results. Make sure to use unique IDs',
    'resultidinvalid': 'The given result cannot be used to send the selection to the bot',
    'resulttypeinvalid': 'Result type invalid',
    'rightforbidden': 'Either your admin rights do not allow you to do this or you passed the wrong rights combination (some rights only apply to channels and vice versa)',
    'rpccallfail': 'Telegram is having internal issues, please try again later.',
    'rpcmcgetfail': 'Telegram is having internal issues, please try again later.',
    'rsadecryptfailed': 'Internal RSA decryption failed',
    'schedulebotnotallowed': 'Bots are not allowed to schedule messages',
    'scheduledatetoolate': 'The date you tried to schedule is too far in the future (last known limit of 1 year and a few hours)',
    'schedulestatusprivate': 'You cannot schedule a message until the person comes online if their privacy does not show this information',
    'scheduletoomuch': 'You cannot schedule more messages in this chat (last known limit of 100 per chat)',
    'searchqueryempty': 'The search query is empty',
    'secondsinvalid': 'Slow mode only supports certain values (e.g. 0, 10s, 30s, 1m, 5m, 15m and 1h)',
    'sendmessagemediainvalid': 'The message media was invalid or not specified',
    'sendmessagetypeinvalid': 'The message type is invalid',
    'sensitivechangeforbidden': 'Your sensitive content settings cannot be changed at this time',
    'sessionexpired': 'The authorization has expired',
    'sessionpasswordneeded': 'Two-steps verification is enabled and a password is required',
    'sessionrevoked': 'The authorization has been invalidated, because of the user terminating all sessions',
    'sessiontoofresh': 'The session logged in too recently and {seconds} seconds must pass before calling the method',
    'shahashinvalid': 'The provided SHA256 hash is invalid',
    'shortnameoccupyfailed': 'An error occurred when trying to register the short-name used for the sticker pack. Try a different name',
    'slowmodewait': 'A wait of {seconds} seconds is required before sending another message in this chat',
    'startparamempty': 'The start parameter is empty',
    'startparaminvalid': 'Start parameter invalid',
    'statsmigrate': 'The channel statistics must be fetched from DC {dc}',
    'stickersetinvalid': 'The provided sticker set is invalid',
    'stickersetowneranonymous': "This sticker set can't be used as the group's official stickers because it was created by one of its anonymous admins",
    'stickersempty': 'No sticker provided',
    'stickerdocumentinvalid': 'The sticker file was invalid (this file has failed Telegram internal checks, make sure to use the correct format and comply with https://core.telegram.org/animated_stickers)',
    'stickeremojiinvalid': 'Sticker emoji invalid',
    'stickerfileinvalid': 'Sticker file invalid',
    'stickeridinvalid': 'The provided sticker ID is invalid',
    'stickerinvalid': 'The provided sticker is invalid',
    'stickerpngdimensions': 'Sticker png dimensions invalid',
    'stickerpngnopng': 'Stickers must be a png file but the used image was not a png',
    'stickertgsnotgs': 'Stickers must be a tgs file but the used file was not a tgs',
    'stickerthumbpngnopng': 'Stickerset thumb must be a png file but the used file was not png',
    'stickerthumbtgsnotgs': 'Stickerset thumb must be a tgs file but the used file was not tgs',
    'storagecheckfailed': 'Server storage check failed',
    'takeoutinitdelay': 'A wait of {seconds} seconds is required before being able to initiate the takeout',
    'takeoutinvalid': 'The takeout session has been invalidated by another data export session',
    'takeoutrequired': 'You must initialize a takeout request first',
    'tempauthkeyempty': 'No temporary auth key provided',
    'timeout': 'A timeout occurred while fetching data from the worker',
    'themeinvalid': 'Theme invalid',
    'thememimeinvalid': 'You cannot create this theme, the mime-type is invalid',
    'tmppassworddisabled': 'The temporary password is disabled',
    'tmppasswordinvalid': 'Password auth needs to be regenerated',
    'tokeninvalid': 'The provided token is invalid',
    'ttldaysinvalid': 'The provided TTL is invalid',
    'ttlmediainvalid': 'The provided media cannot be used with a TTL',
    'ttlperiodinvalid': 'The provided TTL Period is invalid',
    'typesempty': 'The types field is empty',
    'typeconstructorinvalid': 'The type constructor is invalid',
    'unknownmethod': 'The method you tried to call cannot be called on non-CDN DCs',
    'untildateinvalid': 'That date cannot be specified in this request (try using None)',
    'urlinvalid': "The URL used was invalid (e.g. when answering a callback with a URL that's not t.me/yourbot or your game's URL)",
    'usernameinvalid': 'Nobody is using this username, or the username is unacceptable. If the latter, it must match r"[a-zA-Z][\\w\\d]{3,30}[a-zA-Z\\d]"',
    'usernamenotmodified': 'The username is not different from the current username',
    'usernamenotoccupied': 'The username is not in use by anyone else yet',
    'usernameoccupied': 'The username is already taken',
    'userstoofew': 'Not enough users (to create a chat, for example)',
    'userstoomuch': 'The maximum number of users has been exceeded (to create a chat, for example)',
    'useradmininvalid': "Either you're not an admin or you tried to ban an admin that you didn't promote",
    'useralreadyparticipant': 'The authenticated user is already a participant of the chat',
    'userbannedinchannel': "You're banned from sending messages in supergroups/channels",
    'userblocked': 'User blocked',
    'userbot': 'Bots can only be admins in channels.',
    'userbotinvalid': 'This method can only be called by a bot',
    'userbotrequired': 'This method can only be called by a bot',
    'userchannelstoomuch': 'One of the users you tried to add is already in too many channels/supergroups',
    'usercreator': "You can't leave this channel, because you're its creator",
    'userdeactivated': 'The user has been deleted/deactivated',
    'userdeactivatedban': 'The user has been deleted/deactivated',
    'useridinvalid': 'Invalid object ID for a user. Make sure to pass the right types, for instance making sure that the request is designed for users or otherwise look for a different one more suited',
    'userinvalid': 'The given user was invalid',
    'userisblocked': 'User is blocked',
    'userisbot': "Bots can't send messages to other bots",
    'userkicked': 'This user was kicked from this supergroup/channel',
    'usermigrate': 'The user whose identity is being used to execute queries is associated with DC {new_dc}',
    'usernotmutualcontact': 'The provided user is not a mutual contact',
    'usernotparticipant': 'The target user is not a member of the specified megagroup or channel',
    'userprivacyrestricted': "The user's privacy settings do not allow you to do this",
    'userrestricted': "You're spamreported, you can't create channels or chats.",
    'userpicuploadrequired': 'You must have a profile picture before using this method',
    'videocontenttypeinvalid': 'The video content type is not supported with the given parameters (i.e. supports_streaming)',
    'videofileinvalid': 'The given video cannot be used',
    'wallpaperfileinvalid': 'The given file cannot be used as a wallpaper',
    'wallpaperinvalid': 'The input wallpaper was not valid',
    'wcconverturlinvalid': 'WC convert URL invalid',
    'webdocumenturlinvalid': 'The given URL cannot be used',
    'webpagecurlfailed': 'Failure while fetching the webpage with cURL',
    'webpagemediaempty': 'Webpage media empty',
    'workerbusytoolongretry': 'Telegram workers are too busy to respond immediately',
    'youblockeduser': 'You blocked this user',
}
