Are you using a mix of the rprt & brp commands?
The rprt commands are 'short' versions for the brp commands, but they cannot be mixed. For example, rprt_open is like brp.open( spool.report, spool.device, 1 ).
When you open the one report with brp.open(), you get a brp_id. Are you using this id when you are sending data with brp.ready(brp_id)?
Finally, I am assuming that you are closing the report with brp.close(brp.id). Otherwise, I would expect that the session gets hung up afterwards.