E_ADEPT_REQUEST_EXPIRED: Ebook download error from ADE or other e-readers
Estimated Reading Time: 4 MinutesThis error usually appears when the expiration date has passed for the link used to download an eBook from Adobe Content Server. In a normal workflow, an .acsm file is generated for a book that is used as the link to download the actual book. This file contains a field called "expiration" that indicates when this link (not the book itself) will expire.
When a purchase or loan request is placed (GBLlink request) in the content fulfillment server, the server adds the link expiration time set for each store/distributor to the current time to provide the extra time for download.
You can set the link expiration time using the Admin Console. The default is set at 60 minutes when a new distributor is created.
Each book itself can expire after it is downloaded. This is a different property and can be set per book.
If you are a user who is trying to download the eBook, you will need to request a new download link from the eBook provider. These providers often provide the ability to download a book again from the store site.
If you are an ACS host, we explain below how to edit expiration settings.
The setting that controls link expiration can be found in the ACS Admin Console under the distributor tab, in the Distributor Info section.
This value is set per distributor. The expiration time defaults to 60 minutes, but you can change it.
When an ACSM file is downloaded, a tag is populated with an expiration time in the ACSM file. This time is calculated in conjunction with the GBLink and the link expiration setting in the admin console.
The parameter used on the GBLink is called "dateval." This value represents the time in seconds since January 1st, 1970 and is not easily readable in typical date format. It is the exact moment that the GBLink was generated.
An example:
http://acsserver.com:8080/fulfillment/URLLink.acsm?action=enterorder&ordersource=DatalogicsBookstore &orderid=ACS5-2754960815501014815120175 &resid=urn%3Auuid%3A40127349-aa62-485a-9968-5264aa437898 &dateval=1430945466 &gblver=4 &auth=e8a3f928b93808ff919dc0a3ef6f25bffd0564b6
After the link is clicked, an ACSM file is downloaded for the requested book. If you were to open this ACSM file in notepad or another text editor, you would find something like this:
<fulfillmentToken fulfillmentType="buy" auth="user" xmlns="http://ns.adobe.com/adept"> <distributor>urn:uuid:5e9c6150-fb1a-4b9b-b3c7-5eac0fe1230f</distributor> <operatorURL>http://acswin.datalogics.com:8090/fulfillment</operatorURL> <transaction>ACS5-2754960815501014815120175</transaction> <expiration>2015-05-26T15:51:06-05:00</expiration> <resourceItemInfo> <resource>urn:uuid:40127349-aa62-485a-9968-5264aa437898</resource> <resourceItem>0</resourceItem> <metadata> <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">DL Reader User Guide for Android</dc:title> <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Testing</dc:creator> <dc:publisher xmlns:dc="http://purl.org/dc/elements/1.1/">Datalogics,Inc.</dc:publisher> <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/">2c16c4b1-d0b0-42e0-a1b4-9f664203ee08</dc:identifier> <dc:format xmlns:dc="http://purl.org/dc/elements/1.1/">application/epub+zip</dc:format> <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">en</dc:language> </metadata> <licenseToken> <resource>urn:uuid:40127349-aa62-485a-9968-5264aa437898</resource> <permissions> <display/> <excerpt/> <print/> <play/> </permissions> </licenseToken> </resourceItemInfo> <hmac>F5hPQ5xGB6Nx2k7jjb2N7yW6DLg=</hmac> </fulfillmentToken>
Note the <expiration> tag. In this case, the distributor on the fulfillment server is set to have link expiration happen after 20 days. If you were to compare the "dateval" to the <expiration> tag, it would be exactly 20 days. If the ACSM file is used for fulfillment after this time the server will reject it and your eBook reader will produce an E_ADEPT_REQUEST_EXPIRED error.
The ACSM token expires on at the time set for that token in the Admin Console. It will expire on schedule, whether or not you use the GBLink immediately after it is generated.
If you or your user encounters an expired link, a new GBLink with the same orderid and resid will take care of the problem, as long as you don't have other reasons not to allow a user to try to download again.