SDK throwOnError paths now convert structured response bodies into real Error instances while preserving the original body and status in cause.