decodeResponse treats missing errors and extensions as empty or absent