title: What's causing cancelled network requests on Android Chrome
body: <p>On some Chrome on Android devices we are seeing cancelled requests in the Chrome Dev Tools.</p>
  
  <p>It appears to only happen on URLs for articles that follow a <code>/content/:uuid</code> path format and on the <code>www</code> subdomain, we think we've narrowed it down to that rather than all articles since content with a vanity URL doesn't seem to cancel.</p>
  
  <p>What happens is that these requests show as cancelled and then immediately afterwards the request goes again but isn't cancelled.</p>
  
  <p>Most of the time this is fine and the browser loads the requested page, however occasionally from <code>www.ft.com</code> clicking a link to an article will firstly cancel the original request and then, instead of remaking that request for the content, it will remake the request for the page they were already on, in this case <code>www.ft.com</code>.</p>
  
  <p>On devices where this bug happens the initial cancelled request will happen all the time but the reloading of the original page is intermittent (maybe 1 in 6 times?).</p>
  
  <p>The cancelled request, which eventually goes through:</p>
  
  <p><a href="https://i.stack.imgur.com/ToY0l.png" rel="noreferrer"><img src="https://i.stack.imgur.com/ToY0l.png" alt="Cancelled request, which eventually goes through"></a></p>
  
  <p>The cancelled request, which reloads the original page:</p>
  
  <p><a href="https://i.stack.imgur.com/lBn9h.png" rel="noreferrer"><img src="https://i.stack.imgur.com/lBn9h.png" alt="Cancelled request, which reloads the original page"></a></p>
  
  <p>Bug occurs on these devices:</p>
  
  <ul>
  <li>Chrome Version: 59.0.3071.125, Android Version: 7.1.2, Model: Pixel</li>
  <li>Chrome Version: 59.0.3071.125, Android Version: 7.1.2, Model: Nexus 6P</li>
  <li>Chrome Version: 59.0.3071.125, Android Version: 5.0.0, Model: Note 3</li>
  </ul>
  
  <p>Bug doesn't occur on these devices:</p>
  
  <ul>
  <li>Chrome Version: 59.0.3071.125, Android Version: 7.0, Model: Moto G5</li>
  <li>Chrome Version: 59.0.3071.125, Android Version: 7.0, Model: Galaxy S7 (mini)</li>
  <li>Chrome Version: 59.0.3071.125, Android Version: 7.1.1, Model: OnePlus 3</li>
  </ul>
  
  <p>It's somewhat related to <a href="https://stackoverflow.com/questions/12009423/what-does-status-canceled-for-a-resource-mean-in-chrome-developer-tools">What does status=canceled for a resource mean in Chrome Developer Tools?</a>, but we're pretty sure we've ruled out the reasons in the accepted answer.</p>
  
  <p><strong>Debugging we've tried but have not helped:</strong></p>
  
  <ul>
  <li>Disabling Javascript</li>
  <li>Disabling our tracking Javascript</li>
  <li>Disabling our advertisements</li>
  <li>Disabling our service worker</li>
  <li>Disabling the <a href="https://www.html5rocks.com/en/tutorials/appcache/beginner/" rel="noreferrer">application cache</a></li>
  </ul>
  
  <p>Disabling Javascript did change the behaviour, we saw the request still being canceled, but <strong>did not</strong> see it reload the original page as we were seeing with Javascript enabled.</p>
  
  <p><strong>Other observations:</strong></p>
  
  <ul>
  <li>Clicking the links in the Chrome Devtools' simulation of the device doesn't cause the request to cancel, only ever using the device directly.</li>
  </ul>