Can't build files which at root folder

When i trying to build single file translation via Build Project File Translation, if that file at root of project (directoryId = null), response code is 204 No content in exported file

Herethe file list:

{
  "data": [
    {
      "data": {
        "id": 2,
        "projectId": XXX,
        "branchId": null,
        "directoryId": null,
        "name": "bundle.properties",
        "title": null,
        "context": null,
        "type": "properties",
        "path": "/bundle.properties",
        "status": "active",
        "revisionId": 51,
        "priority": "normal",
        "importOptions": null,
        "exportOptions": {
          "escapeQuotes": 0,
          "escapeSpecialCharacters": 0,
          "exportPattern": "%file_name%_%two_letters_code%.%file_extension%"
        },
        "excludedTargetLanguages": null,
        "parserVersion": 11,
        "createdAt": "2024-05-12 13:16:27+00:00",
        "updatedAt": "2026-01-18 02:49:29+00:00"
      }
    },
    {
      "data": {
        "id": 8,
        "projectId": XXX,
        "branchId": null,
        "directoryId": 6,
        "name": "XXX@bundle.properties",
        "title": null,
        "context": null,
        "type": "properties",
        "path": "/XXX/XXX@bundle.properties",
        "status": "active",
        "revisionId": 1,
        "priority": "normal",
        "importOptions": null,
        "exportOptions": {
          "escapeQuotes": 0,
          "escapeSpecialCharacters": 0,
          "exportPattern": "%file_name%_%two_letters_code%.%file_extension%"
        },
        "excludedTargetLanguages": null,
        "parserVersion": 12,
        "createdAt": "2025-02-07 12:10:06+00:00",
        "updatedAt": "2025-02-08 15:46:21+00:00"
      }
    },
    {
      "data": {
        "id": 562,
        "projectId": XXX,
        "branchId": null,
        "directoryId": null,
        "name": "XXX@bundle.properties",
        "title": null,
        "context": null,
        "type": "properties",
        "path": "/XXX@bundle.properties",
        "status": "active",
        "revisionId": 1,
        "priority": "normal",
        "importOptions": null,
        "exportOptions": {
          "escapeQuotes": 0,
          "escapeSpecialCharacters": 0,
          "exportPattern": null
        },
        "excludedTargetLanguages": null,
        "parserVersion": 13,
        "createdAt": "2026-02-01 15:47:00+00:00",
        "updatedAt": "2026-02-01 15:47:05+00:00"
      }
    }
  ],
  "pagination": {
    "offset": 0,
    "limit": 25
  }
}

Both id 2 and 562 at root folder return 204, but id 8 return 200.

I can download translation them in web version (https://crowdin.com/project/{project}/{langcode}) > select a file > Download (single language translation).
I have a Custom Post-Export Processor activing, but if it is the reason of failure, why nothing happned in web version?

Oh! I realized these file at root folder also not including in whole project build (api), after build, download and zip extract, only get file with id 8.

Hi @SITUVNgcd,

For files located in the root folder, you should omit branchId and directoryId in the request body when building translations via API. Including directoryId: null causes the API to return 204 No Content. This is why your root files aren’t included in the build, while files inside folders work correctly.

As API docs, no branchId or directoryId sent in this single file build request, only fileId
Url: https://api.crowdin.com/api/v2/projects/XXX/translations/builds/files/2
Header: {'User-Agent': 'TestAPI', 'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
Payload (JSON): {'targetLanguageId': 'vi'}

I’m also used python client api (https://crowdin.github.io/crowdin-api-client-python/) to request, but result is same.

Hi @SITUVNgcd

Just tested this call to build 1 translated file
https://support.crowdin.com/developer/api/v2/#tag/Translations/operation/api.projects.translations.builds.files.post

POST https://crowdin.com/api/v2/projects/xxx/translations/builds/files/xxx
with this payload:
{
“targetLanguageId”: “fr”,
“skipUntranslatedStrings”: false,
“skipUntranslatedFiles”: false,
“exportApprovedOnly”: false
}

returned a URL to save translated file (both if the source is at root and in a folder).
To troubleshoot this further, please check your project export configuration

1 Like