diff --git a/lib/http-api.js b/lib/http-api.js
index <HASH>..<HASH> 100644
--- a/lib/http-api.js
+++ b/lib/http-api.js
@@ -117,13 +117,17 @@ module.exports.MatrixHttpApi.prototype = {
                         clearTimeout(xhr.timeout_timer);
 
                         if (!xhr.responseText) {
-                            cb(new Error('No response body.'));
+                            var err = new Error('No response body.');
+                            err.http_status = xhr.status;
+                            cb(err);
                             return;
                         }
 
                         var resp = JSON.parse(xhr.responseText);
                         if (resp.content_uri === undefined) {
-                            cb(new Error('Bad response'));
+                            var err = Error('Bad response');
+                            err.http_status = xhr.status;
+                            cb(err);
                             return;
                         }
Pass the http status out with the error so upper level can can see what went wrong.