Error - Bone heat weighting: failed to find solution for one or more bones

I have been searching for a solution to this error all day and to not much success. This error is not to do with my rig cause it parents with automatic weights to other meshes. I have removed the doubles and all the modifers to no difference in result. The only thing that makes a difference is recalculating the inside normals so the inside is on the outside which results in

which is awful can anyone help me?


Why have you failed to supply a demo .blend file ? We have to use guesswork ?

I can see you have faces that have inverted normals so first ensure all face normals are consistently facing outwards. If you recalculate normals and you get the result above then it indicates you may have non manifold edges. Remove these and recalculate again or just flip individual faces
Check from holes in the mesh
Basically any basic errors you have made during your modelling