SPListItem listItem = list.Items.Add(listRootFolder.ServerRelativeUrl, SPFileSystemObjectType.File, null);                            
listItem["Owner"] = spUser; <--  if you step through the code while debugging, an argument exception may occur here 
listItem["Url"] = url; 
listItem["Title"] = title; 
listItem.Update(); In case of an argument exception, you have to check if the assigned spUser-object has been opened from the same parent web as the list.
 
 

