diff --git a/lib/index.js b/lib/index.js
index <HASH>..<HASH> 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -25,6 +25,10 @@ async function prompt(questions=[], { onSubmit=noop, onCancel=noop }={}) {
       continue; // take val & run
     }
 
+    if (typeof question.message !== 'string') {
+      throw new Error('prompt message is required');
+    }
+
     // if property is a function, invoke it unless it's ignored
     for (key in question) {
       if (ignore.includes(key)) continue;
diff --git a/lib/prompts.js b/lib/prompts.js
index <HASH>..<HASH> 100644
--- a/lib/prompts.js
+++ b/lib/prompts.js
@@ -4,10 +4,6 @@ const el = require('./elements');
 const noop = v => v;
 
 function toPrompt(type, args, opts={}) {
-  if (typeof args.message !== 'string') {
-    throw new Error('message is required');
-  }
-
   return new Promise((res, rej) => {
     const p = new el[type](args);
     const onAbort = opts.onAbort || noop;
move `o.message` throw into main loop