components/dlink_bt/src/bt_connection.erl:handle_info(..., {data, Data}) does not split up multiple JSON-RPC commands bundled into a single RFCOMM transmit and invokes dlink_bt_rpc:handle_socket() separately for each command.
This problem has been fixed in components/dlink_tcp/connection.erl, where a receive buffer is kept in the process state and complete commands are extracted and forwarded to dlink_tcp_rpc:handle_socket(), with residual data being returned to state to be prepended to the next received network packet.
The TCP solution should be copied to the BT connection code.
This bug fix must be back ported to release-0.4.0, creating release-0.4.1