Filtering a PxController not reacting to static geometry

I’ve created a simple scene with static geometry, dynamic geometry, and a capsule PxController. Filtering works fine using the simple filtering shader shown in the documentation ((filterData0.word0 & filterData1.word1) && (filterData1.word0 & filterData0.word1)) between all rigid geometry. However, when adding a controller using the same filtering words (including move() filter), the controller only collides with dynamic geometry. The filtering works properly for the dynamic geometry as well. Is there a step I’m missing to allow for collisions with static geometry? If I initialize the move filter’s filterData to NULL, the controller collides with all shapes, dynamic and all. Is there a step I’m missing to properly filter collisions of my controller?

The two rigid body types filtering data are initialized like such:

physx::PxFilterData filter_data;
filter_data.word0 = COL_ACTOR;
filter_data.word1 = COL_TERRAIN | COL_ACTOR | COL_SUB_ACTOR;
// set filtering for all bodies
const physx::PxU32 numShapes = rigid_body->getNbShapes();
physx::PxShape* shapes[16];
rigid_body->getShapes(shapes, numShapes);
for (physx::PxU32 i = 0; i < numShapes; i++) {
	physx::PxShape* shape = shapes[i];
	shape->setFlag(physx::PxShapeFlag::eSCENE_QUERY_SHAPE, true);
	shape->setSimulationFilterData(filter_data);
}
shape->setSimulationFilterData(filter_data);

The controller’s filter data is set as such:

physx::PxRigidDynamic* actor = controller->getActor();
physx::PxShape* shape;
actor->getShapes(&shape, 1);
shape->setFlag(physx::PxShapeFlag::eSCENE_QUERY_SHAPE, true);
physx::PxFilterData filter_data;
filter_data.word0 = COL_ACTOR;
filter_data.word1 = COL_TERRAIN | COL_ACTOR | COL_SUB_ACTOR;
shape->setSimulationFilterData(filter_data);

The controller’s filter (for move()):

physx::PxFilterData* mFilterData = (new physx::PxFilterData(COL_ACTOR, COL_TERRAIN | COL_ACTOR | COL_SUB_ACTOR, 0, 0));
filters = physx::PxControllerFilters(mFilterData, 0, 0);

Fixed the issue. Problem was solved by also setting the query filter data of the rigid bodies via

shape->setQueryFilterData(filter_data);