It's more likely to be your UserPK than your remote. The error message is very misleading.
Unforntunaley, my UserPK does extend java.io.Serializable (as do all my model / value objects) and I am still seeing the error.
Is there something more I need to include (other than Serializable ?) Or prehaps something that needs to be in the deployment descriptor ? Just incase, I enclose my deployment descriptor below :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
Bad form - but I'm replying to my own result.
Through painful commenting and uncommenting of code, I found that my Remote Interface was infact trying to throw an EJBException as well as the RemoteException from the getKey() method.
Not sure how I missed this - I feel a bit of a fool ! - but thought I should post this reply incase anyone has a similar problem. So in colclusion :
Because a method in my REMOTE interface was throwing an invalid RMI/IIOP exception (EJBException in this case), it was reported in the verifier as an error in the home interface return values.
Hope this is of use to anyone else who gets in this situation, very frustrating !