diff --git a/lib/request.js b/lib/request.js
index <HASH>..<HASH> 100644
--- a/lib/request.js
+++ b/lib/request.js
@@ -23,7 +23,9 @@ module.exports = {
 }
 
 const rejectErrors = async res => {
-  const body = await res.json()
+  let body = await res.text()
+  // When Wikibase crash it doesn't return JSON errors anymore
+  if (body[0] === '{') body = JSON.parse(body)
   let { status: statusCode } = res
   if (statusCode >= 400) {
     throw newError(statusCode, body)
@@ -37,7 +39,11 @@ const rejectErrors = async res => {
 }
 
 const newError = (statusCode, body, statusMessage) => {
-  statusMessage = statusMessage || body.message || statusCode
+  if (typeof body === 'string') {
+    statusMessage = body
+  } else {
+    statusMessage = statusMessage || body.message || statusCode
+  }
   const err = new Error(statusMessage)
   err.statusMessage = statusMessage
   err.status = err.statusCode = statusCode
request: handle case where the body isn't json