Chosen Solution

Small parts, such as button flexes can be low quality. I would certainly try another, known-good flex to completely eliminate this variable. However, if a known-good flex does not work, then your problem may be on the logic board. You would want to probe FL7, which is the filter in line with the Silent switch (look it up on the schematic, which can be found on the web). If it is partially dislodged, damaged or missing, it will cause the same problem.