Bone Heat Failed To Find Solution errors can happen with any armature. It’s not caused by or exclusive to Rigify. The error is caused most often by errors in the mesh.
A few reasons for the error:
1. Overlapping geometry. The bone heat algorithm cannot “see” the mesh behind the folded geometry and throws the error.
Fix: Check the mesh for errors. Remove Doubles. Fix intersecting geometry. Or assign weights manually.
2. Flipped normals. Bone heat works from the inside out. If the faces of the mesh are not facing outward, they are blocking the bone heat.
Fix: Recalculate Normals. Or assign weights manually.
3. Unapplied scale on the mesh (scale is not 1,1,1) or differences in scale between the mesh and the armature can cause weighting issues.
Fix: Apply the transforms of the mesh before parenting to the armature. Ideally. the mesh and the armature should have the same origin and the origin should be at the world center.
One method to find the problem area is to separate the mesh by loose parts. (Select the mesh in Edit Mode, Select all vertices (Hotkey A), Hotkey P, Loose parts.) After the mesh has been separated, try parenting each mesh to the armature with Automatic Weights. If all parts successfully auto weight correctly, rejoin the separate meshes into a single mesh again.
I hope that helps.
Good luck!