NFSv4 says even though CLOSE returns a stateid, this stateid is not useful to the client and should be treated as deprecated: https://www.rfc-editor.org/rfc/rfc7530#section-16.2.5 nfs4_op_close could set open_stateid in the response just like it does for NFSv4.1. Also, to make the logic clearer, I think this case inside nfs4_Check_Stateid should set `status = NFS4ERR_REPLAY;` and `goto replay` (currently it does `goto success`): https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/SAL/nfs4_state_id.c... I would also separate the error handling in nfs4_op_close: https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/Protocols/NFS/nfs4_... I think the logic would be clearer if we add an explicit `if (nfs_status == NFS4ERR_REPLAY) { ... }`.