Problem

An order pushed in from a host or ERP will not load or rate, and the ship-to state is a 3-letter code (for example "VIC") instead of a 2-letter code. Loading the order by hand and fixing the state lets a label print.

deserialization error

Cause

Shipstore expects 2-letter state and region codes (for example "VI" for Victoria, Australia). When the host sends a 3-letter code such as "VIC", the value does not match and the order fails to load. Shipstore accepts a state only for countries that use one - Canada, Mexico, Australia, and Ireland - and only in the 2-letter form. For any other country the host should send no state (NULL).

Fix

  1. Open the failing shipment and check the ship-to state or region.
  2. If it is a 3-letter code, change it to the 2-letter code (for example "VIC" becomes "VI"), and confirm the city and postal code are complete.
  3. Reprocess the shipment to print the label.
  4. If the destination country does not use states (for example Germany or Japan), have your host send no state for that field.
  5. If a bad value is arriving in the Bill To address (for example a Japanese prefecture code like "JP08"), remove the Bill To address for that shipment, or add a business rule that clears the Bill To before shipping to that destination.

Prevent it from happening again

Have your host integration send 2-letter state and region codes. If the host cannot change that, email support@shipstore.com and include an example order so translation logic can be looked at.

What you should see

The corrected shipment rates and prints a label, and newly imported orders with 2-letter codes no longer hit the error.

Related articles

See also: "UPS international shipment fails: Serialization / Deserialization failed" and "Error Code: Object Reference Not Set to an Instance of an Object."