Oddbean new post about | logout
 Guess:
Decryption tricked me once in ndk because sender and receiver pubkey namings can be confusing.

You always need to decrypt with providing the recipient pubkey(p-tag) and the PEER pubkey. 
This "peer pubkey" could be your user (your user sent a message) OR another user (p-tag refers to YOUR user as recipient and someone sent your user a message).

I had to check which is which to get it right.