diff --git a/lib/gcli/canon.js b/lib/gcli/canon.js
index <HASH>..<HASH> 100644
--- a/lib/gcli/canon.js
+++ b/lib/gcli/canon.js
@@ -192,6 +192,13 @@ function Parameter(paramSpec, command, groupName) {
   if (this.defaultValue === undefined) {
     this.defaultValue = this.type.getBlank().value;
   }
+
+  // All parameters that can only be set via a named parameter must have a
+  // non-undefined default value
+  if (!this.isPositionalAllowed && this.defaultValue === undefined) {
+    console.error('In ' + this.command.name + '/' + this.name +
+            ': Missing defaultValue for optional parameter.');
+  }
 }
 
 /**
Bug <I> (optmenu): Add checks for defaultValue

Optional parameters must have a defaultValue (unless they are boolean), which
is a check that we didn't make explicit before.