diff --git a/cmd/cue/cmd/testdata/script/cmd_filetypes.txt b/cmd/cue/cmd/testdata/script/cmd_filetypes.txt
new file mode 100644
index 0000000..1fa49bf
--- /dev/null
+++ b/cmd/cue/cmd/testdata/script/cmd_filetypes.txt
@@ -0,0 +1,4 @@
+! cue eval cue+date: x.cue
+stderr 'unknown filetype date'
+-- x.cue --
+a: 5
\ No newline at end of file
diff --git a/internal/filetypes/filetypes.go b/internal/filetypes/filetypes.go
index 451b16f..cc72f62 100644
--- a/internal/filetypes/filetypes.go
+++ b/internal/filetypes/filetypes.go
@@ -178,7 +178,10 @@
 					hasFiles = true
 					continue
 				}
-				inst, v = parseType("", Input)
+				inst, v, err = parseType("", Input)
+				if err != nil {
+					return nil, err
+				}
 			}
 			f, err := toFile(inst, v, s)
 			if err != nil {
@@ -202,7 +205,10 @@
 			case qualifier != "" && !hasFiles:
 				return nil, errors.Newf(token.NoPos, "scoped qualifier %q without file", qualifier+":")
 			}
-			inst, v = parseType(a[0], Input)
+			inst, v, err = parseType(a[0], Input)
+			if err != nil {
+				return nil, err
+			}
 			qualifier = a[0]
 			hasFiles = false
 		}
@@ -233,7 +239,10 @@
 		return nil, errors.Newf(token.NoPos, "empty file name in %q", s)
 	}
 
-	inst, val := parseType(scope, mode)
+	inst, val, err := parseType(scope, mode)
+	if err != nil {
+		return nil, err
+	}
 	return toFile(inst, val, file)
 }
 
@@ -273,7 +282,7 @@
 	return f, nil
 }
 
-func parseType(s string, mode Mode) (inst, val cue.Value) {
+func parseType(s string, mode Mode) (inst, val cue.Value, err error) {
 	i := cuegenInstance.Value()
 	i = i.Unify(i.Lookup("modes", mode.String()))
 	v := i.LookupDef("File")
@@ -283,10 +292,15 @@
 			if p := strings.IndexByte(t, '='); p >= 0 {
 				v = v.Fill(t[p+1:], "tags", t[:p])
 			} else {
-				v = v.Unify(i.Lookup("tags", t))
+				info := i.Lookup("tags", t)
+				if !info.Exists() {
+					return inst, val, errors.Newf(token.NoPos,
+						"unknown filetype %s", t)
+				}
+				v = v.Unify(info)
 			}
 		}
 	}
 
-	return i, v
+	return i, v, nil
 }
