Chain building is complicated, because the issuance graph is complicated: certs get recertified, cross-signed, etc. Different clients have different trust stores, and will build different paths. We recently improved OpenSSL chain building to try more paths: see https://rt.openssl.org/Ticket/Display.html?id=3621