Carrier service shipping rates timeout & ttl

Highlighted
Shopify Partner
15 0 5

I've written an app which uses the carrier service to set shipping rates for merchants. I'm getting reports from some customers during testing that they don't get a shipping rate returned. When I check the app logs it appears that the rate has been sent but for some reason it wasn't recieved bfore the checkout has timed out. Where can I find what the documented timeouts are for carrier service?

Also, I read that when Shopify gets no rates returned from a carrier service that the result is not cached, and that when it does cache the lifetime of the cache is several hours. The responses that I am getting from the customers who have informed me of issues is that the negative (no rates) return values appear to also be cached for several hours. Is there any documentation outlining the cache TTL ? all I could find was this older thread

 

0 Likes
Highlighted
Shopify Staff
Shopify Staff
486 42 106

Edit: The timeout is now 10 seconds.

 

Hi Jonathan,

The timeout for responding as a carrier service is 15 seconds.

As for the caching TTL for an empty rate, I checked and found that a shipping rate that is cached and contains errors expires in 30 seconds.

 

Hope that helps,

Ryan

Developer Experience @ Shopify
0 Likes
Highlighted
Shopify Partner
15 0 5

Thank you Ryan 

 

 

0 Likes
Highlighted
Shopify Partner
18 0 1

so when a timeout occurs, we just see the no rates available message. do we have any control over this message? can a user make the carrier service request again? basically if it time's out the user has no ability to complete checkout.

also in the case of a timeout, does that get cached? so if the user hits refreshes the page tries to go back to their cart it will cache the timeout response?

0 Likes
Highlighted
Shopify Partner
18 0 1

we noticed we were able to call the service after 30secs when a timeout occured by refreshing the page, but that no longer seems to work, so it seems they are caching the error state for a lot longer than 30 secs now. or somehow we're not able to make the call again by refreshing the page?

0 Likes