diff --git a/go/engine/pgp_encrypt.go b/go/engine/pgp_encrypt.go
index <HASH>..<HASH> 100644
--- a/go/engine/pgp_encrypt.go
+++ b/go/engine/pgp_encrypt.go
@@ -184,7 +184,7 @@ func (e *PGPEncrypt) loadSelfKey() (*libkb.PGPKeyBundle, error) {
 
 	keys := me.FilterActivePGPKeys(true, e.arg.KeyQuery)
 	if len(keys) == 0 {
-		return nil, libkb.NoKeyError{Msg: "No PGP key found for encrypting for self"}
+		return nil, libkb.NoKeyError{Msg: "No PGP key found for encrypting for self (add a PGP key or use --no-self flag)"}
 	}
 	return keys[0], nil
 }
diff --git a/go/libkb/rpc_exim.go b/go/libkb/rpc_exim.go
index <HASH>..<HASH> 100644
--- a/go/libkb/rpc_exim.go
+++ b/go/libkb/rpc_exim.go
@@ -244,7 +244,7 @@ func ImportStatusAsError(s *keybase1.Status) error {
 		}
 		return KeyExistsError{fp}
 	case SCKeyNotFound:
-		return NoKeyError{}
+		return NoKeyError{s.Desc}
 	case SCKeyNoEldest:
 		return NoSigChainError{}
 	case SCStreamExists:
Fix NoKeyError not getting its Msg through in ImportStatusAsError

Also be more descriptive when loadSelfKey in `pgp encrypt` fails,
mention that there is --no-self flag.