diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c
index 3b92ae2a920..dca9e859df3 100644
--- a/src/backend/parser/parse_coerce.c
+++ b/src/backend/parser/parse_coerce.c
@@ -1038,6 +1038,14 @@ coerce_record_to_complex(ParseState *pstate, Node *node,
 		Var		   *var = (Var *) node;
 		ParseNamespaceItem *nsitem;
 
+		if (pstate == NULL)
+			ereport(ERROR,
+					(errcode(ERRCODE_CANNOT_COERCE),
+					 errmsg("cannot cast type %s to %s",
+							format_type_be(RECORDOID),
+							format_type_be(targetTypeId)),
+					 errhint("List the row's columns individually, or use a ROW() constructor.")));
+
 		nsitem = GetNSItemByVar(pstate, var);
 		args = expandNSItemVars(pstate, nsitem, var->varlevelsup,
 								var->location, NULL);
