diff --git a/grudge/dof_desc.py b/grudge/dof_desc.py
index 9281769dbcf792a50219540ad4be629c1a04e7b0..aeb3daec5d98364dc332af10072f31f5ddc6ebf4 100644
--- a/grudge/dof_desc.py
+++ b/grudge/dof_desc.py
@@ -272,11 +272,17 @@ class DOFDesc:
         # This can go away once support for strings is dropped
         # completely.
         if isinstance(self.discretization_tag, str):
+            # All strings are interpreted as quadrature-related tags
             return True
-        if issubclass(self.discretization_tag, DISCR_TAG_QUAD):
+        elif issubclass(self.discretization_tag, DISCR_TAG_QUAD):
             return True
-
-        return False
+        elif issubclass(self.discretization_tag,
+                        (DISCR_TAG_BASE, DISCR_TAG_MODAL)):
+            return False
+        else:
+            raise ValueError(
+                f"Unsure how to interpret tag: {self.discretization_tag}"
+            )
 
     def with_qtag(self, discr_tag):
         warn("`DOFDesc.with_qtag` is deprecated and will be dropped "