mi fai un var_dump di $idx->ret ed uno di $idx->ret[1] ?

se ho capito bene l'errore si verifica perchè è una stringa e non un array, pertanto è navigabile (per quanto in maniera errata) con le parentesi quadre (andrebbe fatto con le graffe) ma ovviamente non puo andare oltre con la chiave ['id']