When a client wrongly implements the transaction and doesn't supply data callback (data_cb), it results GPG_ERR_ASS_NO_DATA_CB error in assuan_transact function.
In this situation, in the buffer, the response (D-lines) from server remains unread.
And it results more errors for next transactions, because the client now sees wrong responses.
I observed this in gpgsm master (connecting gpg-agent 2.4, which doesn't support --status option for LISTTRUSTED command). Server's responses are D-lines, but client expects status lines.