I'm having some problem with error message that won't disappear and here's my stored procedure of registerusers:

DELIMITER go
Create procedure registerusers(
Out UserID tinyint(11),
IN iFirstName varchar(30),
IN iLastName varchar(30),
IN iPassword varchar(30),
IN iEmailAddress varchar(30),
IN iSalt varchar(40),
IN iRoleID varchar(1))
BEGIN

declare checkfirstnamecount int;
select count(FirstName) into checkfirstnamecount
from users
where FirstName = iFirstName;

If(checkfirstnamecount!=1) then
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Fill out the First Name ';

else
insert into users(

FirstName,
LastName ,
Password ,
EmailAddress ,
Salt ,
RoleID
)
Values
(
iFirstName,
iLastName ,
iPassword ,
iEmailAddress ,
iSalt ,
iRoleID
);
set UserID = last_insert_id();
end if;

End
go
DELIMITER ;

when I executed set @new_id = null;
call registerusers(@new_id,'jamie','jones','5566','jami e@gmail.com','sdfd','U');
select @new_id;

I got an error message

"MySQL said: Documentation
#1644 - Fill out the First Name " however if I want to leave empty like this:

@new_id = null;
call registerusers(@new_id,'jamie','jones','5566','jami e@gmail.com','sdfd','U');
select @new_id;