esi-issues icon indicating copy to clipboard operation
esi-issues copied to clipboard

invalid header expiry date on corp/character industry jobs

Open guiguilechat opened this issue 6 years ago • 4 comments

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

guiguilechat avatar Nov 22 '18 15:11 guiguilechat

Extending with some info discussed in slack:

  • Error continues to occur for about a minute after cache expiry, with Date = Expires and Last-Modified remaining unchanged.
  • Occurs both on /characters/{character_id}/industry/jobs/ and /corporations/{corporation_id}/industry/jobs/

lukasni avatar Nov 22 '18 15:11 lukasni

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]}

guiguilechat avatar Nov 22 '18 15:11 guiguilechat

When this happens with characters, it only last a few seconds (worst I noticed is 3s)

guiguilechat avatar Nov 22 '18 15:11 guiguilechat

should be fixed by CCP_blakara. To close soon I guess

guiguilechat avatar Dec 20 '22 17:12 guiguilechat