Incorrect Drupal 8 Breadcrumbs
I ran into the same issue 

https://www.drupal.org/node/2723061

function my_theme_preprocess_breadcrumb(&amp;$variables) {
  if (($node = \Drupal::routeMatch()-&gt;getParameter('node')) &amp;&amp; $variables['breadcrumb']) {
    /** @var \Drupal\node\NodeInterface $node */
    $variables['breadcrumb'][] = [
      'text' =&gt; $node-&gt;getTitle(),
      'url' =&gt; $node-&gt;toUrl(),
    ];
    $variables['#cache']['contexts'][] = 'url';
    $variables['#cache']['contexts'][] = 'session';
    $variables['#cache']['contexts'][] = 'user';      
  }
}


So:

$variables['#cache']['contexts'][] = 'session';
$variables['#cache']['contexts'][] = 'user';
$variables['#cache']['contexts'][] = 'url';   


did the trick for me.