cudaGLMapBufferObject exception

I’m getting an exception when I try to map a PBO for CUDA using cudaGLMapBufferObject (cudaGLMapBufferObjectAsync fails also).
Under what circumstances can this happen?
The buffer isn’t bound to any GL binding. Nor is it mapped to host memory.
The current GL context is the same one that the buffer and the register() call were made in.

It works for 5-15 calls, but then it fails.

Any ideas?