When you return nil you see the message:

```
[-] Check failed: The state could not be determined.
```

Which in fact is an error if you check cmd_check:

```ruby
	def cmd_check(*args)
		defanged?

		begin

			code = mod.check_simple(
				'LocalInput'  => driver.input,
				'LocalOutput' => driver.output)

			if (code and code.kind_of?(Array) and code.length > 1)

				if (code == Msf::Exploit::CheckCode::Vulnerable)
					print_good(code[1])
				else
					print_status(code[1])
				end

			else
				print_error("Check failed: The state could not be determined.")
			end
```

Really both options, return CheckCode::Unknown, or return nil and let the error situation runs are logical for me. Not sure if atm is any advantage with returning a valid checkcode, so I'm going to ask to someone else. If there isn't I guess is right if you want just return nil here :)