Error code 403012

API Request Validation framework. Contribute to adobe-apiplatform/api-gateway-request-validation development by creating an account on GitHub.
Copyright (c) 2015 Adobe Systems Incorporated. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the «Software»), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Decorates the error response when validation fails Usage example: # NOTE: this endpoint assumes that $validate_request_status and $validate_request_response_body is set before location @handle_gateway_validation_error { internal; content_by_lua ‘ local ErrorDecorator = require «api-gateway.validation.validatorsHandlerErrorDecorator» local decorator = ErrorDecorator:new() decorator:decorateResponse(ngx.var.validate_request_status, ngx.var.validate_request_response_body) ‘; } local base = require «api-gateway.validation.base« local cjson = require «cjson« local debug_mode = ngx.config.debug Object to map the error_codes sent by validators to real HTTP response codes. When a validator fail with the given «error_code», the HTTP response code is the «http_status» associated to the «error_code» The «message» associated to the «error_code» is returned as well. local DEFAULT_RESPONSES = { ip filtering BLACKLIST_IP = { http_status = 403, error_code = 403012, message = {«error_code»:»403012″,»message»:»Your IP is blacklisted»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, WHITELIST_IP = { http_status = 403, error_code = 403013, message = {«error_code»:»403013″,»message»:»Your IP is not whitelisted»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, redisApiKeyValidator error MISSING_KEY = { http_status = 403, error_code = 403000, message = {«error_code»:»403000″,»message»:»Api Key is required»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, INVALID_KEY = { http_status = 403, error_code = 403003, message = {«error_code»:»403003″,»message»:»Api Key is invalid»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, K_UNKNOWN_ERROR = { http_status = 503, error_code = 503000, message = {«error_code»:»503000″,»message»:»Could not validate Api Key»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, oauth errors MISSING_TOKEN = { http_status = 403, error_code = 403010, message = {«error_code»:»403010″,»message»:»Oauth token is missing.»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, INVALID_TOKEN = { http_status = 401, error_code = 401013, message = {«error_code»:»401013″,»message»:»Oauth token is not valid»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, T_UNKNOWN_ERROR = { http_status = 503, error_code = 503010, message = {«error_code»:»503010″,»message»:»Could not validate the oauth token»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, SCOPE_MISMATCH = { http_status = 403, error_code = 403011, message = {«error_code»:»403011″,»message»:»Scope mismatch»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, oauth profile error P_MISSING_TOKEN = { http_status = 403, error_code = 403020, message = {«error_code»:»403020″,»message»:»Oauth token missing or invalid»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, INVALID_PROFILE = { http_status = 403, error_code = 403023, message = {«error_code»:»403023″,»message»:»Profile is not valid»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, NOT_ALLOWED = { http_status = 403, error_code = 403024, message = {«error_code»:»403024″,»message»:»Not allowed to read the profile»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, P_UNKNOWN_ERROR = { http_status = 403, error_code = 503020, message = {«error_code»:»503020″,»message»:»Could not read the profile»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, hmacSha1SignatureValidator errors MISSING_SIGNATURE = { http_status = 403, error_code = 403030, message = {«error_code»:»403030″,»message»:»Signature is missing»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, INVALID_SIGNATURE = { http_status = 403, error_code = 403033, message = {«error_code»:»403033″,»message»:»Signature is invalid»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, UNKNOWN_ERROR = { http_status = 503, error_code = 503030, message = {«error_code»:»503030″,»message»:»Could not validate Signature»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, Service limit errrors LIMIT_EXCEEDED = { http_status = 429, error_code = 429001, message = {«error_code»:»429001″,»message»:»Service usage limit reached»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, DEV_KEY_LIMIT_EXCEEDED = { http_status = 429, error_code = 429002, message = {«error_code»:»429002″,»message»:»Developer key usage limit reached»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, BLOCK_REQUEST = { http_status = 429, error_code = 429050, message = {«error_code»:»429050″,»message»:»Too many requests»}, headers = { [«X-Request-Id«] = «ngx.var.requestId«, [«Retry-After«] = «ngx.var.retry_after« } }, App valdations DELAY_CLIENT_ON_REQUEST = { http_status = 503, error_code = 503071, messsage = , headers = { [«Retry_After«] = «300s« }, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, CC Link validation INVALID_LINK = { http_status = 403, error_code = 403040, message = {«error_code»:»403040″,»message»:»Invalid link»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, LINK_NOT_FOUND = { http_status = 404, error_code = 404040, message = {«error_code»:»404040″,»message»:»Link not found»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, Generate Hmac validators MISSING_SOURCE = { http_status = 400, error_code = 400001, message = {«error_code»:»400001″,»message»:»Missing digest source»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, MISSING_SECRET = { http_status = 400, error_code = 400002, message = {«error_code»:»400002″,»message»:»Missing digest secret»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } }, MISSING_HEADER = { http_status = 400, error_code = 400003, message = {«error_code»:»400003″,»message»:»Missing header»}, headers = { [«X-Request-Id«] = «ngx.var.requestId« } } } local default_responses_array local user_defined_responses local function getResponsesTemplate() return user_defined_responses or default_responses_array end local function convertResponsesToArray(responses) local a = {} for k, v in pairs(responses) do if (v.error_code ~= nil and v.http_status ~= nil) then table.insert(a, v.error_code, { http_status = v.http_status, message = v.message } ) table.insert(a, v.error_code, v) end end return a end local ValidatorHandlerErrorDecorator = {} function ValidatorHandlerErrorDecorator:new(o) local o = o or {} setmetatable(o, self) self.__index = self default_responses_array = convertResponsesToArray(DEFAULT_RESPONSES) return o end decorates the response by the given response_status and response_body function ValidatorHandlerErrorDecorator:decorateResponse(response_status, response_body) response_status = tonumber(response_status) local o = getResponsesTemplate()[response_status] if (o ~= nil) then ngx.status = self:convertToValidHttpStatusCode(o.http_status) NOTE: assumption: for the moment if it’s custom, then it’s application/json ngx.header[«Content-Type«] = «application/json« add custom headers too if (o.headers ~= nil) then local val, i, j for k, v in pairs(o.headers) do val = tostring(v) see if the header is a variable and replace it with ngx.var.<var_name> i, j = string.find(val, «ngx.var.«) if (i ~= nil and j ~= nil) then val = string.sub(val, j + 1) if (#val > 0) then val = ngx.var[val] end end ngx.header[k] = val end end initialize an nginx variable with the error_code in order to print it in the logging file if (o.error_code ~= nil) then ngx.var.request_validator_error_code = o.error_code; end ngx.say(o.message) add custom message local msg = self:parseResponseMessage(o.message) ngx.say(msg) return end if no custom status code was used, assume the default one is right by trusting the validators if (response_body ~= nil and #response_body > 0 and response_body ~= «niln«) then ngx.status = self:convertToValidHttpStatusCode(response_status) ngx.say(response_body) return end if there is no custom response form the validator just exit with the status ngx.exit(self:convertToValidHttpStatusCode(response_status)) end — Convert the codes sent by validators to real HTTP response codes @param response_status function ValidatorHandlerErrorDecorator:convertToValidHttpStatusCode(response_status) if (response_status >= 100 and response_status <= 599) then return response_status end local http_code_str = string.sub(tostring(response_status), 0, 3) local http_code_number = assert(tonumber(http_code_str), «Invalid HTTP Status Code when decorating response: « .. http_code_str) if (http_code_number >= 100 and http_code_number <= 599) then return http_code_number end ngx.log(ngx.DEBUG, «Status code: «, tostring(response_status), « has not a valid HTTP Status Code format«) return 500 end — Parse the response message and replace any variables, if found (at most 3 variables) @param message Response message function ValidatorHandlerErrorDecorator:parseResponseMessage(message) local m = message local from, to, var, varName, value local cnt = 0 while cnt < 3 do from, to = ngx.re.find(m, «ngx.var.[a-zA-Z_0-9]+«, «jo«) if (from) then var = string.sub(m, from, to) varName = string.sub(m, from + 8, to) «+ 8» jump over «ngx.var.» value = ngx.var[varName] m = string.gsub(m, var, value) else break end cnt = cnt + 1 end all variables have been replaced return m end hook to overwrite the DEFAULT_RESPONSES by specifying a jsonString function ValidatorHandlerErrorDecorator:setUserDefinedResponsesFromJson(jsonString) if (jsonString == nil or #jsonString < 2) then user_defined_responses = nil return end local r = assert(cjson.decode(jsonString), «Invalid user defined jsonString:« .. tostring(jsonString)) if r ~= nil then user_defined_responses = r local user_responses = convertResponsesToArray(r) merge tables for k, v in pairs(default_responses_array) do merge only if user didn’t overwrite the default response if (user_responses[k] == nil) then user_responses[k] = v end end user_defined_responses = user_responses end end return ValidatorHandlerErrorDecorator
  • func IsDuplicateKeyError(err error) (string, bool)
  • func IsPreparedError(v interface{}) bool
  • func IsRecordNotFoundError(err error) bool
  • func NewPreparedError() *preparedError
  • type ErrorCode
  • type UndefinedError
    • func NewError(msg string) *UndefinedError
    • func (uf *UndefinedError) Error() string
  • type ValidationError
    • func (ve ValidationError) Add(key, value string)
    • func (ve *ValidationError) Error() string

This section is empty.

This section is empty.

func IsPreparedError(v interface{}) bool

func NewPreparedError() *preparedError

const (
	UnableToParseBody                             ErrorCode = "400001"
	InvalidMultiPartBody                          ErrorCode = "400002"
	BearerTokenNotFound                           ErrorCode = "400003"
	InvalidRequest                                ErrorCode = "400005"
	CartMustHaveAllDigitalOrAllNonDigitalProducts ErrorCode = "400006"
	AllProductsMustBeFromSameStore                ErrorCode = "400007"
	InvalidCoupon                                 ErrorCode = "400008"
	OrderNotPaidYet                               ErrorCode = "400009"
	OrderPaymentAlreadyReverted                   ErrorCode = "400010"
	OrderAlreadyCancelled                         ErrorCode = "400011"
	ExceedMaxProductQuantity                      ErrorCode = "400012"
	PaymentMethodMustBeOnlineForDigitalProducts   ErrorCode = "400013"
	PayoutAmountInvalid                           ErrorCode = "400014"
	StoreCreationDataInvalid                      ErrorCode = "422001"
	UserLoginDataInvalid                          ErrorCode = "422002"
	UserSignUpDataInvalid                         ErrorCode = "422003"
	UserUpdateDataInvalid                         ErrorCode = "422004"
	CategoryCreationDataInvalid                   ErrorCode = "422005"
	CollectionCreationDataInvalid                 ErrorCode = "422006"
	ShippingMethodCreationDataInvalid             ErrorCode = "422007"
	PaymentMethodCreationDataInvalid              ErrorCode = "422008"
	ProductCreationDataInvalid                    ErrorCode = "422009"
	ProductAttributeCreationDataInvalid           ErrorCode = "422010"
	AddCollectionDataInvalid                      ErrorCode = "422011"
	AdditionalChargeDataInvalid                   ErrorCode = "422012"
	OrderDataInvalid                              ErrorCode = "422013"
	OrderPaymentDataInvalid                       ErrorCode = "422014"
	AddStoreStaffDataInvalid                      ErrorCode = "422015"
	ResetPasswordDataInvalid                      ErrorCode = "422016"
	ReviewDataInvalid                             ErrorCode = "422017"
	OrderPaymentRevertDataInvalid                 ErrorCode = "422018"
	SettingsUpdateDataInvalid                     ErrorCode = "422019"
	BusinessAccountTypeDataInvalid                ErrorCode = "422020"
	PayoutMethodDataInvalid                       ErrorCode = "422021"
	PayoutSettingsDataInvalid                     ErrorCode = "422022"
	PayoutEntryDataInvalid                        ErrorCode = "422023"
	StoreCreationQueryFailed                      ErrorCode = "500001"
	DatabaseQueryFailed                           ErrorCode = "500002"
	PasswordEncryptionFailed                      ErrorCode = "500003"
	UserSignUpFailed                              ErrorCode = "500004"
	UserUpdateFailed                              ErrorCode = "500005"
	UnableToReadMultiPartData                     ErrorCode = "500006"
	MinioServiceFailed                            ErrorCode = "500007"
	UserLoginFailed                               ErrorCode = "500008"
	PaymentGatewayFailed                          ErrorCode = "500009"
	PaymentProcessingFailed                       ErrorCode = "500009"
	FailedToEnqueueTask                           ErrorCode = "500010"
	StoreAlreadyExists                            ErrorCode = "409001"
	StoreMemberAlreadyExists                      ErrorCode = "409002"
	CategoryAlreadyExists                         ErrorCode = "409003"
	CollectionAlreadyExists                       ErrorCode = "409004"
	ShippingMethodAlreadyExists                   ErrorCode = "409005"
	PaymentMethodAlreadyExists                    ErrorCode = "409006"
	ProductVariantAlreadyExists                   ErrorCode = "409007"
	UserAlreadyExists                             ErrorCode = "409008"
	ProductAlreadyExists                          ErrorCode = "409009"
	AdditionalChargeAlreadyExists                 ErrorCode = "409010"
	PaymentAlreadyProcessed                       ErrorCode = "409011"
	ProductAttributeAlreadyExists                 ErrorCode = "409012"
	CouponAlreadyExists                           ErrorCode = "409013"
	ReviewAlreadyExists                           ErrorCode = "409014"
	UserAlreadyStaff                              ErrorCode = "409015"
	BusinessAccountTypeAlreadyExists              ErrorCode = "409016"
	PayoutMethodAlreadyExists                     ErrorCode = "409017"
	UserHasAStore                                 ErrorCode = "403001"
	UserSignUpDisabled                            ErrorCode = "403002"
	StoreCreationDisabled                         ErrorCode = "403003"
	AppIsNotActivated                             ErrorCode = "403004"
	AuthorizationTokenInvalid                     ErrorCode = "403006"
	AuthorizationTokenExpired                     ErrorCode = "403007"
	UserScopeUnauthorized                         ErrorCode = "403008"
	RestrictedBucket                              ErrorCode = "403009"
	CouponNotApplicable                           ErrorCode = "403010"
	StoreNotActive                                ErrorCode = "403012"
	UserNotActive                                 ErrorCode = "403013"
	UnauthorizedStoreAccess                       ErrorCode = "403014"
	StoreNotFound                                 ErrorCode = "404001"
	SettingsNotFound                              ErrorCode = "404002"
	UserNotFound                                  ErrorCode = "404003"
	UserGroupNotFound                             ErrorCode = "404004"
	CategoryNotFound                              ErrorCode = "404005"
	CollectionNotFound                            ErrorCode = "404006"
	ProductNotFound                               ErrorCode = "404007"
	ShippingMethodNotFound                        ErrorCode = "404008"
	PaymentMethodNotFound                         ErrorCode = "404009"
	ProductVariantNotFound                        ErrorCode = "404010"
	AddressNotFound                               ErrorCode = "404011"
	AdditionalChargeNotFound                      ErrorCode = "404012"
	ProductUnavailable                            ErrorCode = "404013"
	OrderNotFound                                 ErrorCode = "404014"
	CouponNotFound                                ErrorCode = "404015"
	StaffDoesNotExists                            ErrorCode = "404016"
	AttributeNotFound                             ErrorCode = "404017"
	LocationNotFound                              ErrorCode = "404018"
	BusinessAccountTypeNotFound                   ErrorCode = "404019"
	PayoutMethodNotFound                          ErrorCode = "404020"
	PayoutSettingsNotFound                        ErrorCode = "404021"
	PayoutEntryNotFound                           ErrorCode = "404022"
	LoginCredentialsInvalid                       ErrorCode = "401001"
	VerificationTokenIsInvalid                    ErrorCode = "401002"
	UnauthorizedRequest                           ErrorCode = "401004"
	InvalidAuthorizationToken                     ErrorCode = "401005"
)

type UndefinedError struct {
	Err string `json:"message"`
}

  • 05.03.2020

Рассмотрим в связи с чем у Вас могла выйти данная ошибка 30182-39 (2). Она может возникать как при простой установке Microsoft Office 365, 2016 или 2019. Либо при установке приложений Visio или Project, в том случае, если у Вас уже установлен Microsoft Office 365, 2016 или 2019.

Как решить проблему?

Самым быстрым вариантом и зачастую самым действующим, является переустановка приложения, если у Вас выходит ошибка просто при установке Microsoft Office. Либо, если же Вы устанавливаете Visio, или Project к Вашему основному пакету Microsoft Office, то Вам нужно сначала удалить Microsoft Office, после установить Visio или Project, и только после установки Visio/Project заново установить Microsoft Office.

Удалять какие-либо приложения Microsoft Office, а так же Visio и Project рекомендуем с помощью официальной утилиты от Microsoft для удаления остатков Office — Microsoft Support and Recovery Assistant.

Скачать и ознакомиться с инструкцией по использованию можете на следующей странице.

А так же, мы рекомендуем использовать только оригинальные дистрибутивы Microsoft Office и приложений Visio / Project. Скачать их можете в нашем каталоге.

  1. Error description
  2. Short error description in the response
  3. Example of an error message

If an error occurs, the request processing stops, and the server returns an HTTP response code that identifies the error. In addition to the code, the response contains a short error description.

The error message is returned in the format specified in the request URL after the method name or in the Accept HTTP header.

The error description is passed in the error parameter. This parameter contains the error code (the code parameter) and a short error description (the message parameter).

Code

Name

Explanation

200

OK

The request is successfully completed.

206

Partial Content

The request is partially completed.

400

Bad Request

The request is invalid.

401

Unauthorized

The request doesn’t include authorization data.

403

Forbidden

Incorrect authorization data is specified in the request, or access to the requested resource is denied.

404

Not Found

The requested resource isn’t found.

405

Method Not Allowed

The requested method isn’t supported for the specified resource.

415

Unsupported Media Type

The requested content type isn’t supported by the method.

420

Enhance Your Calm

The resource access restriction is exceeded.

500

Internal Server Error

Internal server error. Try calling the method after a while. If the error persists, contact the Yandex.Market support service.

503

Service Unavailable

The server is temporarily unavailable due to high load. Try calling the method after a while.

  • For the 400 Bad Request error:

    Description

    Explanation

    Possible solution

    Collection of field must not be empty

    The parameter must not be empty.

    Specify at least one element for the parameter.

    Invalid status: 'status'

    Invalid status is specified.

    Check if the sent status is correct for order filtering by status.

    JSON: {message}

    The JSON data format contains an error.

    Check if the data passed in the request body has the correct JSON format.

    Missing field

    The required parameter isn’t specified.

    Specify a value for the required parameter.

    The request is too big

    The HTTP request size limit is exceeded.

    Cut the request size by reducing the amount of the sent data.

    Too long time period. Maximum is 'maxPeriod' days

    The specified date range is too large. Maximum range — maxPeriod.

    Reduce the date range to filter orders by date.

    Unexpected character 'character': expected a valid value 'values'

    Invalid character.

    Check the request body encoding. The required encoding is UTF-8.

    Unexpected end of content

    The request body ends unexpectedly.

    Check if the data passed in the request body has the correct format.

    Value / length of field (value) must be between min and max [exclusively]

    The parameter value (length) must be between the min and max values and not equal to them.

    Check if the parameter value is correct.

    Value / length of field (value) must be greater / less than [or equal to] limit

    The parameter value (length) must be equal to or greater than (less than) the specified limit value.

    Check if the parameter value is correct.

    Value of field has too high scale: 'price'

    The accuracy of the parameter is set too high.

    Set the parameter values with less precision.

    Value of field must match the pattern: 'regExp'

    The parameter value must match the regular expression.

    Check if the parameter value is correct.

    XML: {message}

    The XML data format contains an error.

    Check if the data passed in the request body has the correct XML format.

    Other short descriptions that can be found in messages about this error are provided in the descriptions of the corresponding resources.

  • For the 401 Unauthorized error:

    Description

    Explanation

    Possible solution

    Unsupported authorization type specified in Authorization header

    Authorization type passed in the Authorization HTTP header isn’t supported.

    Check if the authorization data is correct.

    Authorization header has invalid syntax

    The Authorization HTTP header format is incorrect.

    Check if the authorization data is correct.

    OAuth credentials are not specified

    The request doesn’t include authorization data.

    Check that the authorization data is correct.

    OAuth token is not specified

    The request doesn’t include the authorization token (the oauth_token parameter).

    Check if the authorization data is correct.

    OAuth client id is not specified

    The request doesn’t include the application ID (the oauth_client_id parameter).

    Check if the authorization data is correct.

  • For the 403 Forbidden error:

    Description

    Explanation

    Possible solution

    Access denied

    Access to the specified resource is prohibited.

    Check if the resource is specified correctly, and if the authorized user login has access to it.

    Access to API denied for the client / campaign

    The client or store isn’t allowed to access the Yandex.Market Partner API.

    Agency clients should contact their agency about getting access to the Yandex.Market Partner API.

    Client id is invalid

    The specified application ID (the oauth_client_id parameter) is invalid.

    Check if the authorization data is correct. If they are correct, get a new app ID, repeat the request with the new authorization data.

    Scope is invalid

    The specified authorization token (the oauth_token parameter) doesn’t have the necessary set of rights.

    Get a new authorization token, mention the right to use the Yandex.Market Partner API when you receive it, and repeat the request with the new authorization data.

    Token is invalid

    The specified authorization token (parameter oauth_token) is invalid.

    Check if the authorization data is correct. If they are correct, get a new authorization token, repeat the request with the new authorization data.

    User account is disabled

    The user account for which the specified authorization token was issued is blocked.

    Contact the Yandex.Market support service.

  • For the 404 Not Found error:

    Description

    Explanation

    Possible solution

    Feed not found: 'feedId'

    The price list specified in the request isn’t found.

    Check if the sent price list ID is correct.

    Login not found: 'login'

    The username specified in the request isn’t found.

    Check if the sent username is correct.

    Model not found: 'modelId'

    The model specified in the request isn’t found.

    Check if the model ID you are passing is correct.

  • For the 405 Method Not Allowed error:

    Description

    Explanation

    Possible solution

    Request method 'method' not supported

    The requested HTTP method isn’t supported.

    Check the methods supported by the resource. You can find the list of methods in the Requests reference section.

  • For the 415 Unsupported Media Type error:

    Description

    Explanation

    Possible solution

    Content type 'content-type' not supported

    The requested content type isn’t supported.

    Pass one of the supported content types.

    Missing Content-Type

    The content type isn’t specified.

    Pass the content type.

    Unknown content-type: 'content-type'

    The requested content type is unknown.

    Pass one of the supported content types.

  • For the 420 Enhance Your Calm error:

    Description

    Explanation

    Possible solution

    Hit rate limit of 'N' parallel requests

    Exceeded the global limit on the number of simultaneous requests to the Yandex.Market Partner API.

    Reduce the number of concurrent requests to the partner API within a single store or partner to N requests.

    Hit rate limit of 'N' requests per 'period' for resource 'R'

    The resource restriction for the N number of requests to the R resource over the period for the same store or partner is exceeded.

    The time until which the limit applies is specified in the X-RateLimit-Resource-Until header. You can use of the resource after the specified time.

  • For the 503 Service Unavailable error:

    Description

    Explanation

    Possible solution

    Service temporarily unavailable. Please, try again later

    The server is temporarily unavailable due to high load.

    Try repeating the request after a while.

Request example:

GET /v2/campaigns.xml HTTP/1.1
Host: api.partner.market.yandex.ru
Accept: */*
Authorization: OAuth oauth_token=,oauth_client_id=b12320932d4e401ab6e1ba43d553d433

Response example:

<response>
  <errors>
    <error code="UNAUTHORIZED" message="OAuth token is not specified"/>
  </errors>
  <error code="401">
    <message>OAuth token is not specified</message>
  </error>
</response>

Request example:

GET /v2/campaigns.json HTTP/1.1
Host: api.partner.market.yandex.ru
Accept: */*
Authorization: OAuth oauth_token=,oauth_client_id=b12320932d4e401ab6e1ba43d553d433

Response example:

{
  "errors":
  [
    {
      "code": "UNAUTHORIZED",
      "message": "OAuth token is not specified"
    }
  ],
  "error":
  {
    "code": 401,
    "message": "OAuth token is not specified"
  }
}

Понравилась статья? Поделить с друзьями:
  • Error code 403 message access denied
  • Error code 4028 a table must have at least one visible column
  • Error code 4024
  • Error code 4015
  • Error code 401 no permission