Continuous throttling with the new Go TX CLI

Hi,

I wonder if anyone can help.

I’m trying to transition from the old python tx client to the new go client.
The client is run from a script as part of a GitHub Actions workflow.
The problem is that with the new client I keep hitting a point where downloads are throttled after about 10-15 minutes.
That would not be a problem, but the client never seems to recover - the workers wait and then retry, but they fail again and continue like that in the retry loop until the GitHub action times out after six hours!

Has anyone else experienced this?

It seems like a bug in the client? I’m wondering if the pull request is cached in some way so that the throttling error will always be returned for the “retry” requests?

Thanks,
Phil

[UPDATE]

That resource that was failing above was in a strange state (zero strings).

It seems the config contained a source file that has been removed. I guess the old client just ignored that, but the new client seems to have created an empty resource, which is failing when attempting to pull translations.

This might be a bug, in the client or API, because “Throttled” is probably not the correct state to enter in this case.
But I can fix my issue by fixing my config.

Hello

Thank you for reaching out to Transifex support.
Could you confirm what command you used when pulling down translations?, I will like to recreate the scenario in one of my projects so i can forward my testing results to my dev team.
Also if you could share your config file and the workflow you have implemented in your project?

Thanks in advance
Cesar

Hi @Cesar_Garcia ,

It’s actually very easy to reproduce, and I can do so from the command line::

  1. I am using a project pd-test for this example

  2. I go to an empty folder on my local machine and create a .tx/config with the following content:

    [main]
    host = https://www.transifex.com
    
    [o:<my-organisation>:p:pd-test:r:file-does-not-exist]
    file_filter  = path/<lang>.properties
    source_file  = path/en.properties
    source_lang  = en
    type         = PROPERTIES
    minimum_perc = 0
    

    (with <my-organisation> replaced, of course).
    This simulates the case of a source_file that has been removed without updating the .tx/config file.

  3. push the source file :

    tx push --source
    

    This says “no such file or directory”, but actually creates a zero string resource in the transifex project.

  4. try to pull translations from the project:

    tx pull --all
    

    This will first say Creating download job for the relevant languages, but after a short while it will go into the Throttled, will retry after x seconds loop.

Hwllo @Phil_Larsen_Donnelly ,

Thanks for your quick response!
I was able to reproduce the issue and forwarded my comments to my dev team, Please keep in mind that updates might take some time before going into production. We apologize for the inconvenience and thank you for taking the time to provide us with feedback.

If anything else comes up please feel free to let us know :slight_smile:
Best Regards
Cesar