Troubleshooting¶
On this page
See also:
Check API Status¶
To check the current operational status of the PB Global Ecommerce APIs, see the Pitney Bowes API Status Page.
Troubleshoot Latency¶
The Pitney Bowes servers process requests and send responses within 800 milliseconds. If you are encountering latency, troubleshoot the problem by looking at each of the following in isolation:
We recommend starting with the Global Ecommerce APIs. Pitney Bowes has tools to quickly discover if the latency is on our end.
Check the Global Ecommerce APIs¶
To check the current operational status of the Ecommerce APIs, see the Pitney Bowes API Status Page.
To troubleshoot an ongoing latency issue, please contact Support on the Contact Us page and provide a detailed description of the problem, including metrics. Pitney Bowes has tools to quickly discover if the latency is on our end.
Check the Network¶
To check the network:
Use a Network Analyzer¶
To test your network, we recommend using a network analyzer like Wireshark to measure where slowness might be occurring. Pitney Bowes can help you set up the parameters of a Wireshark test. Please do not hesitate to contact Pitney Bowes for assistance.
When testing the network:
Measure traffic from a single node. When doing so, make sure you are measuring traffic for the correct node. For example, a Create Shipment request received at your Phoenix warehouse might originate in your Denver office.
Measure traffic from a load balancer.
Measure all traffic going to an IP address.
Filter for the API call for which you are experiencing latency. By default, Wireshark will measure every API call going over the network, so you must apply filters to capture metrics only for the specific call.
For example, if you are experiencing latency in printing labels, make sure you are measuring traffic only for Create Shipment requests and not also including, say, Create Manifest requests.
Deploy your Application in a Different Data Center¶
Keep in mind how your network routes traffics and whether the network routes traffic through servers you are unaware of. To check for routing issues, deploy your application in a different data center. If the latency disappears, the issue might be how the first data center is routing traffic.
Check Your Application¶
Check the following:
In your logs, check the timestamp of the request received on the firewall layer, load balancer, and application servers. Check the timestamp of the response leaving your application network.
Check for any variance in your test environment to your production environment.
Check the code used to make HTTPS connections. Check code snippets, open-source libraries, and packages.
Troubleshoot an Error Message¶
If your API request returns an error message, check the Error Codes tables to see if there is a documented solution for the returned error.
If you do not find a solution, and if you received a 4XX error, please see Troubleshoot HTTP 4XX Errors.
If you do not find a solution, and if you received a 5XX error, please see Troubleshoot HTTP 5XX Errors.
If the problem persists, please contact Support.
Troubleshoot HTTP 4XX Errors¶
If the HTTP status code is in the 4XX range, you may have issued a faulty request. Do the following:
Check for exceptions and prerequisites in the Considerations section of the documentation for your API call.
Check that you are using the correct parameters, headers and elements, and the correct capitalization and spelling. See the documentation page for the API call.
Check that you are using the correct version of the API call. To check the version number, see the API resource list.
Check that you are using the correct credentials for the API environment. The APIs use different credentials for the Sandbox and Production environments. See API Environments.
Troubleshoot HTTP 5XX Errors¶
If the HTTP status code is in the 5XX range there might be an issue with the Pitney Bowes system. Do the following:
If you issued the Create Shipment request and received the HTTP 500 Internal Server Error, see Troubleshoot the 500 Internal Server Error for a Create Shipment Request below.
If you received an error other than the HTTP 500 Internal Server Error, or if the API call is not a Create Shipment request, try the call again.
If the problem persists, please contact Support.
Troubleshoot the 500 Internal Server Error for a Create Shipment Request¶
If you issued the Create Shipment request and received the HTTP 500 Internal Server Error:
If the API returned the PB-APIM-ERR-1006 error code in the error object, your request failed because of throttling limits. Re-issue the Create Shipment request. Exit these steps.
If you did not receive the PB-APIM-ERR-1006 error code, issue the Retry Shipment API to check if the label was created. If the response returns the shipment object the label was created and you can exit these steps. The following are the top-level fields in the shipment object:
{ "fromAddress": { ... }, "toAddress": { ... }, "parcel": { ... }, "rates": [ ... ], "shipmentId": "...", "parcelTrackingNumber": "...", "documents": [ { ... } ], "shipmentOptions": [ ... ] }
If the label was not created, create a new label. Issue the Create Shipment request with a new Transaction ID.
If the problem persists, contact Support.
Troubleshoot a Problem Printing ZPL2 Labels¶
If you encounter a problem printing ZPL2 labels, the issue could be that your printer’s firmware does not support the Unicode character set. By default, the Global Ecommerce APIs generate ZPL2 labels using UTF-8, which supports international characters. If you encounter a problem printing ZPL2 labels, contact your Zebra printer provider to update your printer’s firmware to the latest version. (Note that the printer’s firmware is not the same as the printer’s drivers.)
As an optional workaround if the firmware option is not available, you can use the PRINTER_MODEL shipment option to generate labels using the ASCII character set. It is important to note, however, that if you use ASCII, international characters might not print properly. It is highly recommended you update your firmware if possible.