Some API consumers uploading documents to the Benefits Intake API have reported unusually high rates of expired statuses, meaning the PUT within 15 minutes to the location provided by an initial POST request never made it through and thus closed out the GUID.
We have determined the cause of this issue for at least one consumer to be that the VA firewall is falsely flagging PDF content as a threat when it is encoded as binary.
We've updated our code and documentation to allow the encoding of documents for upload using base64 instead appears to have fixed the issue for some. You can find the instructions for doing the base64 approach in our official documentation under Optional Base64 Encoding
at https://developer.va.gov/explore/benefits/docs/benefits?version=current Please comment here if you have encountered this issue.
Additionally, the expired status can result from a TLS connection closing due to a failed handshake as well. If you are seeing unusual numbers of TLS handshake failures in your logs, please comment here as well.
Note that the base64 payload must start with data:multipart/form-data;base64 and the multipart boundaries i.e. ------WebKitFormBoundaryVfOwzCyvug0JmWYo and ending ------WebKitFormBoundaryVfOwzCyvug0JmWYo-- must also be included.
Hope this helps - please let us know how you make out.
Ryan Link
Customer Success Manager & Developer Support Lead
VA Lighthouse API Program
Visit developer.va.gov for more on the VA API Program
Visit valighthouse.statuspage.io to subscribe to API status alerts
Visit GovDelivery to subscribe to the Lighthouse API newsletter