`lastmodified` is a required page lead property. However, not all pages have the `dc:modified` metadata header that we rely on for this. This seems to be a new class of error since yesterday's Parsoid deployment but might just be an artifact of everything being regenerated in RESTBase.
Questions:
1. Does this indicate an upstream problem?
2. What's the correct way to handle the absence of `dc:modified`? Should the property be optional, or should we introduce something like a new `unknown` value?
Example:
https://fi.wikipedia.org/api/rest_v1/page/html/Egypti
[2017-12-13T13:45:38.902Z] ERROR: mobileapps/152 on scb2001: 500: internal_error (message="500: internal_error", status=500, type=internal_error, detail="Cannot read property 'getAttribute' of undefined", levelPath=error/500, request_id=a3d6d82d-dffa-11e7-bc4d-5a15f2be8e7f)
stack: TypeError: Cannot read property 'getAttribute' of undefined
at getModified (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/src/lib/parsoid-access.js:79:68)
at Request.getParsoidHtml.then (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/src/lib/parsoid-access.js:121:33)
at Request.tryCatcher (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:638:18)
at Promise._resolveCallback (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:432:57)
at Promise._settlePromiseFromHandler (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:524:17)
at Promise._settlePromise (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:693:18)
at Promise._fulfill (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/promise.js:638:18)
at Request._callback (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/bluebird/js/release/nodeback.js:45:21)
at Request.self.callback (/srv/deployment/mobileapps/deploy-cache/revs/5832a8cbd5e65e241117376e75b6fff978bf5448/node_modules/request/request.js:186:22)
--
request: {
"url": "/fi.wikipedia.org/v1/page/mobile-sections/Egypt",
"headers": {
"x-request-id": "a3d6d82d-dffa-11e7-bc4d-5a15f2be8e7f",
"content-length": "0"
},
"method": "GET",
"params": {
"0": "/fi.wikipedia.org/v1/page/mobile-sections/Egypt"
},
"query": {},
"remoteAddress": "10.192.32.151",
"remotePort": 49622
}