Wildberries API TypeScript SDK / InvalidOrderStateError
Class: InvalidOrderStateError
Defined in: errors/in-store-pickup-errors.ts:98
Error thrown when an order state transition is invalid
HTTP Status: 409 Conflict Retry: No (permanent failure - requires state correction) Rate Limit: 409 responses count as 10 requests!
This error occurs when attempting to transition an order to a state that is not valid given its current state (e.g., trying to prepare an order that hasn't been confirmed yet).
Valid State Transitions:
new→confirm(confirmOrder)confirm→prepare(prepareOrder)prepare→receive(receiveOrder) - terminal stateprepare→reject(rejectOrder) - terminal state- Any →
cancel(cancelOrder) - terminal state
Example
try {
// Trying to prepare order without confirming first
await sdk.inStorePickup.prepareOrder(12345);
} catch (error) {
if (error instanceof InvalidOrderStateError) {
console.error(`Cannot ${error.attemptedAction} order ${error.orderId}`);
console.error(`Current state: ${error.currentState}`);
console.error('Recovery:', error.getUserMessage());
// Get current status and retry with correct action
const statuses = await sdk.inStorePickup.getOrderStatuses([error.orderId]);
const currentState = statuses.orders[0]?.supplierStatus;
// Handle based on current state
}
}Extends
Constructors
Constructor
new InvalidOrderStateError(
orderId: number,
currentState: string | undefined,
attemptedAction: string,
requestId?: string): InvalidOrderStateError;Defined in: errors/in-store-pickup-errors.ts:107
Creates a new InvalidOrderStateError
Parameters
| Parameter | Type | Description |
|---|---|---|
orderId | number | ID of the order with invalid state |
currentState | string | undefined | Current state of the order (if known) |
attemptedAction | string | Action that was attempted (e.g., "prepare", "receive") |
requestId? | string | Optional request ID from API response |
Returns
InvalidOrderStateError
Overrides
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
<a id="statuscode"></a> statusCode? | readonly | number | HTTP status code if applicable | WBAPIError.statusCode | errors/base-error.ts:25 |
<a id="response"></a> response? | readonly | unknown | API response body if available | WBAPIError.response | errors/base-error.ts:30 |
<a id="requestid"></a> requestId? | readonly | string | Correlation ID for debugging and tracing requests | WBAPIError.requestId | errors/base-error.ts:35 |
<a id="origin"></a> origin? | readonly | string | Origin service identifier from RFC 7807 problem+json responses. Indicates which internal Wildberries service originated the error (e.g., "s2s-api-auth-catalog"). | WBAPIError.origin | errors/base-error.ts:43 |
<a id="timestamp"></a> timestamp? | readonly | string | ISO 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.timestamp | errors/base-error.ts:51 |
<a id="orderid"></a> orderId | readonly | number | ID of the order with invalid state | - | errors/in-store-pickup-errors.ts:108 |
<a id="currentstate"></a> currentState | readonly | string | undefined | Current state of the order (if known) | - | errors/in-store-pickup-errors.ts:109 |
<a id="attemptedaction"></a> attemptedAction | readonly | string | Action that was attempted (e.g., "prepare", "receive") | - | errors/in-store-pickup-errors.ts:110 |
Methods
toJSON()
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
{
name: string;
message: string;
statusCode?: number;
response?: unknown;
requestId?: string;
origin?: string;
timestamp?: string;
}Object representation of the error for JSON serialization
| Name | Type | Defined in |
|---|---|---|
name | string | errors/base-error.ts:157 |
message | string | errors/base-error.ts:158 |
statusCode? | number | errors/base-error.ts:159 |
response? | unknown | errors/base-error.ts:160 |
requestId? | string | errors/base-error.ts:161 |
origin? | string | errors/base-error.ts:162 |
timestamp? | string | errors/base-error.ts:163 |
Example
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
getUserMessage()
getUserMessage(): string;Defined in: errors/in-store-pickup-errors.ts:131
Returns user-friendly error message with recovery guidance
Returns
string