Crowdin cli download --config {/tmp/path} returns "Downloaded translations don't match the current project configuration"

For some reason crowdin download --config="{/tmp/path}" fails, but the same crowdin.yml in the current working directory (pwd) works.

Any idea why? My goal is to create a temporary crowdin.yml in the context of a github action that is not in the git tree so I don’t accidentally commit the file to the repo.

node(v22.16.0) aws(default) ~/repos/ubsicap/sltt/client/src/resources/translations $ crowdin download --verbose --language es-ES --config=$CROWDIN_YML_PATH
✔️  Loading configuration from the '/tmp/tmp.JkpyVRyGq4/crowdin.yml' file
✔️  Fetching project info     
✔️  Building ZIP archive with the latest translations for 'es-ES'
✔️  Building translation (100%)
✔️  Downloading translations     
✔️  Extracting archive     
⚠️  Downloaded translations don't match the current project configuration. The translations for the following sources will be omitted (use --verbose to get the list of the omitted translations):
        - en.po (1)
                - es-ES.po
Visit the https://crowdin.github.io/crowdin-cli/faq for more details
❌ ⚠️  Couldn't find any file to download
 node(v22.16.0) aws(default) ~/repos/ubsicap/sltt/client/src/resources/translations $ crowdin --version
4.7.1

This works:

node(v22.16.0) aws(default) ~/repos/ubsicap/sltt/client/src/resources/translations $ crowdin download --verbose --language es-ES --config="crowdin.yml"
✔️  Loading configuration from the '/home/epyle/repos/ubsicap/sltt/client/src/resources/translations/crowdin.yml' file
✔️  Fetching project info     
✔️  Building ZIP archive with the latest translations for 'es-ES'
✔️  Building translation (100%)
✔️  Downloading translations     
✔️  Extracting archive     
✔️  es-ES.po

Hello @epyle

The issue is rooted in how crowdin-cli interprets relative paths within your crowdin.yml.

When you specify a config file in /tmp, the CLI looks for your source files (like en.po) relative to /tmp/ – not your actual repository directory. This mismatch causes the “Downloaded translations don’t match…” error.

Therefore, you can add a base_path property to the top of your crowdin.yml file. This tells Crowdin CLI the correct absolute path to your project’s source files. This will ensure Crowdin CLI finds your source files correctly, regardless of where your temporary crowdin.yml is stored.

1 Like

Thanks, it would be nice if crowdin made this behavior more explicit in the @crowdin/cli docs and error output!

Thank you for your feedback, we’ve noted it.