Error Codes

The service defines 345 error codes.

Format

EQ-PIM-XXXXXXX — prefix EQ-PIM- followed by 7 digits where the first three digits encode the HTTP status and the last four are a sequence number. Examples: EQ-PIM-4040001 (404), EQ-PIM-4220001 (422), EQ-PIM-5000001 (500).

The definitive HTTP status for a code is looked up from an internal status map kept consistent with the encoded digits, not by parsing the string.

Error response shape

Every error response carries these fields, plus an Error-Code response header:

Field Meaning
errorCode The EQ-PIM-* code
errorMessage Localized message (with parameter templating)
validations Present only when detail strings are supplied
details Present only when an extension/external validator returns field-level info (and its message overrides errorMessage)

401/403 authorization error payloads are additionally reshaped into the standard error format.

HTTP status quick reference

HTTP Meaning Example code
400 Bad request / malformed input EQ-PIM-4000001 (BAD_REQUEST)
401 Unauthorized / token issues EQ-PIM-4010001 (UNAUTHORIZED)
403 Forbidden / insufficient privilege EQ-PIM-4030001 (FORBIDDEN)
404 Resource not found EQ-PIM-4040001 (NOT_FOUND)
405 Method not allowed EQ-PIM-4050001 (METHOD_NOT_ALLOWED)
409 Conflict / already exists EQ-PIM-4090001 (CONFLICT)
415 Unsupported media type UNSUPPORTED_MEDIA_TYPE
422 Validation error EQ-PIM-4220001 (VALIDATION_ERROR)
429 Too many requests EQ-PIM-4290001 (TOO_MANY_REQUESTS)
500 Internal server error EQ-PIM-5000001 (INTERNAL_SERVER_ERROR)

Codes are grouped into these categories: Generic (500x), Instance, Authentication & Authorization, Attribute, Workflow, Field Validation (42200254220100+), Product, Product Template, Category, Catalog, Asset, Price, Price Rule, Channel, Locale, Database, Cache, Search, Navigation, Contract/B2B, and S3 Storage.

Generic & auth (representative)

Code HTTP Constant When How to resolve
EQ-PIM-5000001 500 INTERNAL_SERVER_ERROR Unexpected server/DB failure Retry; check logs/DB connectivity
EQ-PIM-4220001 422 VALIDATION_ERROR Data/business-rule validation failed Fix request per validations
EQ-PIM-4000001 400 BAD_REQUEST Malformed request Correct request structure
EQ-PIM-4000006 400 INVALID_REQUEST_BODY_FORMAT Body is not valid JSON Send valid JSON
EQ-PIM-4000016 400 EMPTY_REQUEST_BODY Empty body on PATCH/PUT Include a non-empty body
EQ-PIM-4000019 400 TOO_MANY_IDS >20 comma-separated IDs Send ≤20 IDs per request
EQ-PIM-4010001 401 UNAUTHORIZED No/invalid authentication Provide a valid bearer token
EQ-PIM-4030001 403 FORBIDDEN Missing required privilege Grant the pim:* privilege
EQ-PIM-4040001 404 NOT_FOUND Resource/route not found Verify path and IDs
EQ-PIM-4090001 409 CONFLICT Resource already exists Use update, or a unique identifier
EQ-PIM-4290001 429 TOO_MANY_REQUESTS Rate limit exceeded Back off and retry

Instance & validation (representative)

Code HTTP Constant When How to resolve
404 INSTANCE_NOT_FOUND instanceId doesn’t exist Use a valid instance
409 INSTANCE_ALREADY_EXISTS Duplicate instance Use a unique instance
422 INSTANCE_INACTIVE Instance is inactive Activate the instance
400 INVALID_INSTANCE_ID instanceId not a valid ObjectId Provide a valid ObjectId
400 INSTANCE_ID_REQUIRED instanceId query missing Add ?instanceId=...
EQ-PIM-4220099 422 INVALID_LIMIT_VALUE Bad pagination limit Use a valid limit
422 INVALID_OBJECT_ID / INVALID_PAGE_NUMBER Bad id/page Correct the parameter

Attribute / product / category / catalog (representative)

Code HTTP Constant When How to resolve
EQ-PIM-4090004 409 ATTRIBUTE_ALREADY_EXISTS Duplicate attribute Use a unique identifier
EQ-PIM-4220169 422 EMPTY_OPTION_VALUE Empty option in options list Provide non-empty options
EQ-PIM-4090013 409 ATTRIBUTE_GROUP_HAS_ATTRIBUTES Deleting a group in use Remove attributes first
EQ-PIM-4220113 422 INVALID_PRODUCT_STATUS Bad product status value Use an allowed status
EQ-PIM-4220149 422 BUNDLE_SKUIDS_NOT_APPLICABLE skuIds sent for bundle Omit skuIds for bundles
EQ-PIM-4040008 404 PRODUCT_MODEL_NOT_FOUND Referenced model missing Create/reference valid model
EQ-PIM-4220109 422 INVALID_CATEGORY_IDENTIFIER_FORMAT Bad category identifier Fix identifier format
EQ-PIM-4220090 422 INVALID_CATALOG_SUBTYPE Bad catalog subtype Use a valid subtype

Asset / price / search / cache (representative)

Code HTTP Constant When How to resolve
EQ-PIM-4220054 422 INVALID_FILE_TYPE Unsupported upload type Upload an allowed file type
EQ-PIM-4220136 422 EMPTY_FILE_UPLOAD Empty file uploaded Upload a non-empty file
EQ-PIM-4000130 400 ASSET_MIME_TYPE_REQUIRED Missing MIME type Provide the asset MIME type
EQ-PIM-4040018 404 SKU_NOT_FOUND SKU not found Use a valid SKU
EQ-PIM-4040031 404 PRICE_LIST_NOT_FOUND Price list not found Use a valid price list
EQ-PIM-5000053 500 PRICE_LIST_CREATE_FAILED Price list write failed Retry / check logs
EQ-PIM-4090044 409 PRICE_RULE_ALREADY_EXISTS Duplicate price rule Use a unique rule
EQ-PIM-4220024 422 INVALID_RULE_ACTION Bad rule action Use a supported action
EQ-PIM-5000008 500 CACHE_SET_ERROR Redis write failed Check Redis connectivity

S3 storage & contract/B2B (representative)

Code HTTP Constant When How to resolve
500 S3_CREDENTIALS_NOT_CONFIGURED S3 creds missing Configure AWS credentials
500 S3_ACCESS_DENIED S3 permission denied Fix IAM/bucket policy
500 S3_OPERATION_FAILED S3 op failed Retry / check bucket config
EQ-PIM-4040102 404 CONTRACT_NAVIGATION_NOT_FOUND Contract navigation missing Verify contract config

The tables above are representative; the full 345-code catalogue documents the trigger and HTTP status for each code. Legacy price/workflow codes are retained for backward compatibility and marked as deprecated.


Revision History
2026-08-05 | JP – Created the page and added the content.