esi-issues
esi-issues copied to clipboard
invalid header expiry date on corp/character industry jobs
Bug
the header of the corp/char industry jobs sometimes returns date=expirydate, which means the data should be fetched again.
Request
GET https://esi.evetech.net/v1/corporations/$CORPID/industry/jobs/?&include_completed=false&page=1
Response
Status Code
200
Headers
Include relevant headers received. Timestamps and request ID is nice, you may not have all these values, fill out what you received (don't worry about headers not listed here, unless pertinent to your issue). E.g.:
initial fetch
null=[HTTP/1.1 200 OK],
Access-Control-Allow-Origin=[*],
Access-Control-Allow-Methods=[GET,HEAD,OPTIONS],
X-Esi-Error-Limit-Remain=[100],
Connection=[keep-alive],
Last-Modified=[Thu, 22 Nov 2018 14:05:06 GMT],
X-Pages=[1],
Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent],
Date=[Thu, 22 Nov 2018 14:05:06 GMT],
Allow=[GET,HEAD,OPTIONS],
X-Esi-Request-Id=[133bb7d9-f8ca-4dd2-a9f0-a1b764ced0bc],
Strict-Transport-Security=[max-age=31536000],
Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset],
Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"],
Cache-Control=[private],
Access-Control-Allow-Credentials=[true],
X-Esi-Error-Limit-Reset=[54],
Vary=[Accept-Encoding],
Expires=[Thu, 22 Nov 2018 14:10:06 GMT],
Access-Control-Max-Age=[600],
Content-Length=[30728],
Content-Type=[application/json; charset=UTF-8]}
after the expiry of the data, I fetch again
null=[HTTP/1.1 200 OK],
Access-Control-Allow-Origin=[*],
Access-Control-Allow-Methods=[GET,HEAD,OPTIONS],
X-Esi-Error-Limit-Remain=[100],
Connection=[keep-alive],
Last-Modified=[Thu, 22 Nov 2018 14:05:06 GMT],
X-Pages=[1],
Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent],
Date=[Thu, 22 Nov 2018 14:10:10 GMT],
Allow=[GET,HEAD,OPTIONS],
X-Esi-Request-Id=[806357b5-f90b-4e6f-a452-c40bd48a51d6],
Strict-Transport-Security=[max-age=31536000],
Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset],
Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"],
Cache-Control=[private],
Access-Control-Allow-Credentials=[true],
X-Esi-Error-Limit-Reset=[50],
Vary=[Accept-Encoding],
Expires=[Thu, 22 Nov 2018 14:10:10 GMT],
Access-Control-Max-Age=[600],
Content-Length=[30728],
Content-Type=[application/json; charset=UTF-8]}
Body
Please provide the response body, feel free to scrub any opsec details you wish. E.g.:
{
"error": "I'm a teapot"
}
Expected
Expected Expires
> Date
, Last-Modified to change after cache expiration.
Checklist
Check all boxes that apply to this issue:
- [x] Bug description is provided
- [x] Request path is provided
- [x] Response status code is provided
- [x] Response headers are provided
- [ ] Response body is provided
- [x] Expected response is provided
Extending with some info discussed in slack:
- Error continues to occur for about a minute after cache expiry, with
Date
=Expires
andLast-Modified
remaining unchanged. - Occurs both on
/characters/{character_id}/industry/jobs/
and/corporations/{corporation_id}/industry/jobs/
Here is an example of the 1 correct header, followed by 11 incorrect sequential headers I received, then the correct header.
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:09:00 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[3fdc5b4a-5fb3-4cf7-b2c8-126d518aa9e1], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[60], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:00 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:01 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[9e1ba788-5e77-4923-b3f5-8a4dcf9979ac], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[59], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:01 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:02 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[20611997-45c6-4141-ab26-bb5ce8c562a1], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[58], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:02 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:04 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[6fa5eacc-5222-401b-af1e-ab2a6afc86b8], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[56], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:04 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:07 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[28d32e04-ffdb-408d-bf70-8dda33371885], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[53], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:07 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:12 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[2beb6620-7041-49d4-abe9-520dcbd3ce40], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[48], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:12 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:17 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[f020e0c2-a608-4f08-9fa3-829ee8244dcf], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[43], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:17 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:23 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[52aee050-4dc7-46a5-a05f-334e31361785], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[37], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:23 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:31 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[a25e1229-d141-4ac2-99c3-25e344a0b0a8], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[29], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:31 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:39 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[98848b91-4f51-43fd-95a3-e4ad30877f5b], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[21], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:39 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:48 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[b652d218-2345-47ad-821b-4e409c11cc34], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[12], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:48 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:09:00 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:14:59 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[c1b6c39d-3423-478e-a1a2-c5b8d75ec534], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[1], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:14:59 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
headers={null=[HTTP/1.1 200 OK], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[GET,HEAD,OPTIONS], X-Esi-Error-Limit-Remain=[100], Connection=[keep-alive], Last-Modified=[Thu, 22 Nov 2018 15:15:10 GMT], X-Pages=[1], Access-Control-Allow-Headers=[Content-Type,Authorization,If-None-Match,X-User-Agent], Date=[Thu, 22 Nov 2018 15:15:10 GMT], Allow=[GET,HEAD,OPTIONS], X-Esi-Request-Id=[422f7021-338f-4d15-bb9e-310757572101], Strict-Transport-Security=[max-age=31536000], Access-Control-Expose-Headers=[Content-Type,Warning,ETag,X-Pages,X-ESI-Error-Limit-Remain,X-ESI-Error-Limit-Reset], Etag=["bd299e7202c735a40a4d2a520a8498002017d00028859d2038ed7587"], Cache-Control=[private], Access-Control-Allow-Credentials=[true], X-Esi-Error-Limit-Reset=[50], Vary=[Accept-Encoding], Expires=[Thu, 22 Nov 2018 15:20:10 GMT], Access-Control-Max-Age=[600], Content-Length=[30728], Content-Type=[application/json; charset=UTF-8]}
When this happens with characters, it only last a few seconds (worst I noticed is 3s)
should be fixed by CCP_blakara. To close soon I guess