Skip to content

Wildberries API TypeScript SDK / MetadataValidationError

Class: MetadataValidationError

Defined in: errors/in-store-pickup-errors.ts:246

Error thrown when product metadata validation fails

HTTP Status: 409 Conflict (metadata update failures) Retry: No (permanent failure - requires correct data or order state) Rate Limit: 409 responses count as 10 requests!

This error occurs when attempting to set metadata (SGTIN, UIN, IMEI, GTIN) codes but the operation fails due to:

  • Invalid code format
  • Order not in confirm status
  • Metadata type not in order's requiredMeta list
  • Delivery not by WB (for UIN, IMEI, GTIN)

Example

typescript
try {
  await sdk.inStorePickup.setSGTINCode(12345, ['invalid-code']);
} catch (error) {
  if (error instanceof MetadataValidationError) {
    console.error(`Cannot set ${error.codeType}:`, error.getUserMessage());

    // Check order status
    const statuses = await sdk.inStorePickup.getOrderStatuses([12345]);
    console.log('Current status:', statuses.orders[0].supplierStatus);

    // Check required metadata
    const newOrders = await sdk.inStorePickup.getNewOrders();
    const order = newOrders.orders.find(o => o.id === 12345);
    console.log('Required metadata:', order?.requiredMeta);
  }
}

Extends

Constructors

Constructor

ts
new MetadataValidationError(
   codeType: "SGTIN" | "UIN" | "IMEI" | "GTIN", 
   orderId: number, 
   message: string, 
   requestId?: string): MetadataValidationError;

Defined in: errors/in-store-pickup-errors.ts:255

Creates a new MetadataValidationError

Parameters

ParameterTypeDescription
codeType"SGTIN" | "UIN" | "IMEI" | "GTIN"Type of metadata code (SGTIN, UIN, IMEI, GTIN)
orderIdnumberID of the order for which metadata update failed
messagestringDetailed error message from API
requestId?stringOptional request ID from API response

Returns

MetadataValidationError

Overrides

WBAPIError.constructor

Properties

PropertyModifierTypeDescriptionInherited fromDefined in
<a id="statuscode"></a> statusCode?readonlynumberHTTP status code if applicableWBAPIError.statusCodeerrors/base-error.ts:25
<a id="response"></a> response?readonlyunknownAPI response body if availableWBAPIError.responseerrors/base-error.ts:30
<a id="requestid"></a> requestId?readonlystringCorrelation ID for debugging and tracing requestsWBAPIError.requestIderrors/base-error.ts:35
<a id="origin"></a> origin?readonlystringOrigin service identifier from RFC 7807 problem+json responses. Indicates which internal Wildberries service originated the error (e.g., "s2s-api-auth-catalog").WBAPIError.originerrors/base-error.ts:43
<a id="timestamp"></a> timestamp?readonlystringISO 8601 timestamp from RFC 7807 problem+json responses. Indicates when the error occurred on the server side (e.g., "2024-09-30T06:52:38Z").WBAPIError.timestamperrors/base-error.ts:51
<a id="codetype"></a> codeTypereadonly"SGTIN" | "UIN" | "IMEI" | "GTIN"Type of metadata code (SGTIN, UIN, IMEI, GTIN)-errors/in-store-pickup-errors.ts:256
<a id="orderid"></a> orderIdreadonlynumberID of the order for which metadata update failed-errors/in-store-pickup-errors.ts:257

Methods

toJSON()

ts
toJSON(): {
  name: string;
  message: string;
  statusCode?: number;
  response?: unknown;
  requestId?: string;
  origin?: string;
  timestamp?: string;
};

Defined in: errors/base-error.ts:156

Custom JSON serialization to preserve all error properties.

By default, Error objects don't serialize the message property when using JSON.stringify(). This method ensures all important properties are included in the JSON output.

Returns

ts
{
  name: string;
  message: string;
  statusCode?: number;
  response?: unknown;
  requestId?: string;
  origin?: string;
  timestamp?: string;
}

Object representation of the error for JSON serialization

NameTypeDefined in
namestringerrors/base-error.ts:157
messagestringerrors/base-error.ts:158
statusCode?numbererrors/base-error.ts:159
response?unknownerrors/base-error.ts:160
requestId?stringerrors/base-error.ts:161
origin?stringerrors/base-error.ts:162
timestamp?stringerrors/base-error.ts:163

Example

typescript
const error = new WBAPIError('Test error', 400, { detail: 'info' }, 'req-123');
const json = JSON.stringify(error);
// { "name": "WBAPIError", "message": "Test error", "statusCode": 400, ... }

Inherited from

WBAPIError.toJSON


getUserMessage()

ts
getUserMessage(): string;

Defined in: errors/in-store-pickup-errors.ts:277

Returns user-friendly error message with recovery guidance

Returns

string

Overrides

WBAPIError.getUserMessage

Made with ❤️ for the Wildberries developer community