Sentry reported a random error coming from Axios, `Error: timeout of 0ms exceeded`.

Under what circumstances would this error appear? We don't have timeout settings configured, and 0ms seems like a mighty short time for any request to finish, so why is this error thrown?

It appears to have been a one off that is not readily reproducible, so I can't provide test code, but the underlying network error seems to have been `ECONNABORTED`.

Axios version 0.18.0

lib/adapters/xhr.js
'use strict';
var utils = require('./../utils');
var settle = require('./../core/settle');
var cookies = require('./../helpers/cookies');
var buildURL = require('./../helpers/buildURL');
var buildFullPath = require('../core/buildFullPath');
var parseHeaders = require('./../helpers/parseHeaders');
var isURLSameOrigin = require('./../helpers/isURLSameOrigin');
var createError = require('../core/createError');
module.exports = function xhrAdapter(config) {
  return new Promise(function dispatchXhrRequest(resolve, reject) {
    var requestData = config.data;
    var requestHeaders = config.headers;
    var responseType = config.responseType;
    if (utils.isFormData(requestData)) {
      delete requestHeaders['Content-Type']; 
    }
    var request = new XMLHttpRequest();
    
    if (config.auth) {
      var username = config.auth.username || '';
      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
    }
    var fullPath = buildFullPath(config.baseURL, config.url);
    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
    
    request.timeout = config.timeout;
    function onloadend() {