In developing a miner, I noted a few "unknown work" errors -- presumably because I was CPU mining and not responding to the pool in a timely enough manner. However, more disturbingly, I received a H-not-zero error as well later on. My understanding of this is if the nonce returned to the pool doesn't give a block hash satisfying the difficulty target.
However, if I verify the header and nonce myself, it certainly appears to satisfy a difficulty 1 target, and I did not have any difficulty changes other than the initial difficulty 1 set at the beginning.
Is there any other reason why I would receive H-not-zero?
The block header is 020000000a6e91f0cfc53cbb762fb13cdd0065ed91c9cb71f084fd465200000000000000a83f774e89cfeb9629ced2b62f7157892b976e80abb5a769e3d5a5dff7c6155bf89af3516889001a00000000 and the nonce I returned was 06da803b, with a hash of 826ea471fffbd2b2355c8cef483f380f15df812ae66b4679d008c24800000000.