Custom breadcrumbs from a breadcrumb builder disappear until I clear Varnish cache
Pretty sure I found the root cause. I found some errant code here in the else condition.

/**
 * Implements hook_preprocess_block().
 */
function mytheme_preprocess_block(&amp;$variables) {
  if ($variables['plugin_id'] == 'system_breadcrumb_block') {
    if (...) {
      $variables['attributes']['class'][] = 'hl__breadcrumb--light';
    }
    else {
      if (!empty($variables['content']['#links'])) {
        if (count($variables['content']['#links']) == 1) {
          $variables['content'] = [];
          $variables['elements']['content'] = $variables['content'];
        }
      }
    }
  }
}


Deleting the entire else block seems to have corrected the issue, unable to replicate it now.