TranslationResourcesService currently responds with "400 (Bad Request): Unexpected target: {resId}" when a TextFlowTarget is received after all TextFlows have been visited in order. It requires all TFTs to be listed in the same order as their TFs, with no extras. We should remove this undocumented requirement/assumption, and allow REST clients to provide TFTs in any order.
Can you shed any light on how to reproduce it and verify it?
It's an API change, so coding against the API is the only way to test it directly. But I think the problem could probably be reproduced by running the python client to push PO files to an old version of Zanata server, if you hand-edit the PO files so that the messages are out of order compared to the POT. We normally avoid this by running msgmerge, which puts the PO messages into the POT order.
Fixed in 1.4