diff --git a/src/Context/FieldResolver.php b/src/Context/FieldResolver.php
index b50dd3e..cb5577b 100644
--- a/src/Context/FieldResolver.php
+++ b/src/Context/FieldResolver.php
@@ -4,6 +4,7 @@ namespace Drupal\jsonapi\Context;
 
 use Drupal\Core\Entity\EntityFieldManagerInterface;
 use Drupal\Core\Entity\EntityTypeBundleInfoInterface;
+use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\TypedData\DataReferenceTargetDefinition;
 use Drupal\jsonapi\ResourceType\ResourceType;
@@ -124,7 +125,9 @@ class FieldResolver {
       $entity_type_id = $definitions[$field_name]->getSetting('target_type');
       // $field_name may not be a reference field. In that case we should treat
       // the rest of the parts as complex fields.
-      if (empty($entity_type_id)) {
+      // non-fieldable entity types will be return.
+      $entity_type_class = \Drupal::entityTypeManager()->getDefinition($entity_type_id)->getOriginalClass();
+      if (empty($entity_type_id) || !($entity_type_class instanceof FieldableEntityInterface)) {
         // This is the path from the initial entity type to the entity type that
         // contains $field_name. This path is a set of entity references.
         $entity_path = implode('.entity.', $reference_breadcrumbs);
