Hi,
We started seeing Box transfers get permanently stuck (zero throughput for many hours) after beign triggered by a single error response on March 15 as the Box server-side change below was being tested.
This would probably have been retried and recovered had it not been for the second issue ( https://forum.rclone.org/t/latest-rclone-box-backend-hangs-when-max-duration-hit/22927 ) that makes it loop with zero throughput until killed.
These are 2 problems. The API compatibility issue in the backend is still seen as of version 1.54.1 and manifests itself intermittently with..
2021/03/20 03:30:27 DEBUG : Couldn't decode error response: invalid character '<' looking for beginning of value^M
2021/03/20 03:30:27 DEBUG : pacer: low level retry 1/1 (error Error "504 Gateway Time-out" (504))^M
Hello Box Custom App Owner,
As previously communicated, we're reaching out to notify you of a change that may affect yourBox application(s). If you've already taken corrective actions for your applications based onprevious communication, please ignore this message.
On May 10th, 2021, as part of our continued infrastructure upgrade, Box's
API responseheaders
will standardize to return in a case insensitive manner, in line with
industry bestpractices
and our API documentation. Applications that are using these headers, such as"location" and "retry-after", will need to verify that their applications are checking for theseheaders in a case-insensitive fashion. Over the past 12 months Box has been upgrading itsnetworking and observability infrastructure. These upgrades aim to improve reliability andavailability of Box's products for our customers. This specific change allows Box to deploy anupdated service proxy, enabling Box to more easily monitor service traffic, quickly find problemareas, and tune application performance.
You have been identified as an application owner (developer, support, or admin) that may beimpacted by this change.
How to verify whether your application(s) will be impacted
Verifying whether your application(s) will be impacted will require a review of your code. If youare solely using one of the
official Box SDKs
to connect to Box APIs, you will not be impactedas the SDKs handle response headers in a case-insensitive manner.
You may verify whether you are impacted with the following steps:
Locate the code in your application which handles the responses from Box API requests. If youare not extracting the
response headers
from these responses, you are not impacted.
If you are extracting those response headers, you may be impacted if you are expecting thoseheaders in a case-sensitive fashion.
For instance, if you are expecting the "Location" header to be returned with a starting capital"L", a direct string comparison with a specific case, then your code will need to be altered toprevent it from breaking after the change is made.
How to make the change
To update the impacted application(s), ensure that you are checking these response headers ina case-insensitive manner. Specifically, your code should be built in a defensive way to ensurethat if a header, such as "Location", is sent with an initial capital "L" or a lowercase "l", it'll behandled in the same way. For example, forcing all headers to lowercase before checking, orusing a case-insensitive regex string check, are two viable methods for handling this process.
Additional dates to be aware of
In addition to the date that this change will take effect, May 10th, 2021, we will be running twotests to ensure that we can identify and support applications that may be impacted. Duringthese tests, if your application is impacted, you may see an increase in error rates whenchecking for those headers. The current dates of these tests, which may shift, are:
March 15th, 2021
April 22nd, 2021
If you see an increase in failure rates during these periods, your application(s) will be impactedon May 10th, 2021 and will need to be adjusted using the above steps.