Raycast returns true but buf.hasBlock is false

Hello, I’ve been trying to upgrade my project to use the latest Px 3.3.2 and I’m using the example raycasting code from the documentation. As the title says, the result of my raycast is true, but my PxRaycastBuffer.hasBlock is false and I’m having trouble retrieving the shape and actor data from it. Maybe It’s been far too long since I’ve used PhysX but I hope I can get some helpful pointers to check my work. I’m using Ogre3d to render. Here’s my test code -

const PxU32 bufferSize = 256;        // [in] size of 'hitBuffer'
PxRaycastHit hitBuffer[bufferSize];  // [out] User provided buffer for results
PxRaycastBuffer buf(hitBuffer, bufferSize); // [out] Blocking and touching hits will be stored here

Vector3 hitPosition = Vector3::ZERO;

PxVec3 org = TemplateUtils::toNX(mPosition);
Vector3 delta = mPosition + toAdd - mPosition;
PxVec3 ndir = TemplateUtils::toNX(delta.normalisedCopy());

PxVec3 origin = org;                 // [in] Ray origin
PxVec3 unitDir = ndir;                // [in] Normalized ray direction
PxReal maxDistance = 10000;            // [in] Raycast max distance

// Raycast against all static & dynamic objects (no filtering)
// The main result from this call are all hits along the ray, stored in 'hitBuffer'
bool hadBlockingHit = PHY->getScene()->raycast(origin, unitDir, maxDistance, buf);
if (hadBlockingHit)
	hitPosition = TemplateUtils::toOgre(buf.touches[0].position); // buf shows hasBlock is false here